Export tuple.h / packet.h / session.h to the include directory

This commit is contained in:
luwenpeng
2024-04-10 11:40:26 +08:00
parent a5a133bf91
commit 24e109e34f
51 changed files with 1238 additions and 1067 deletions

View File

@@ -1,7 +1,7 @@
// TCP state machine test: init -> opening
#include <gtest/gtest.h>
#include "session.h"
#include "session_private.h"
#include "session_manager.h"
#include "ipv4_utils.h"
@@ -76,21 +76,21 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN)
EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0");
EXPECT_TRUE(session_get_tuple_dir(sess) == SESSION_DIR_C2S);
EXPECT_TRUE(session_get_tuple_direction(sess) == SESSION_DIRECTION_C2S);
EXPECT_TRUE(session_get_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
EXPECT_TRUE(session_has_dup_traffic(sess) == 0);
EXPECT_TRUE(session_get_closing_reason(sess) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_C2S, STAT_RAW_BYTES_RX) == 78);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_S2C, STAT_RAW_BYTES_RX) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_C2S, STAT_RAW_PKTS_RX) == 1);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_S2C, STAT_RAW_PKTS_RX) == 0);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_NEW) == 1);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_BYTES_RX) == 78);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_PKTS_RX) == 1);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_PKTS_RX) == 0);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START) == 1);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST) == 1);
EXPECT_TRUE(session_get_current_packet(sess) == &pkt);
EXPECT_TRUE(session_get_current_dir(sess) == SESSION_DIR_C2S);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIR_C2S) != NULL);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIR_S2C) == NULL);
EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_S2C) == NULL);
session_dump(sess);
// check stat
@@ -155,21 +155,21 @@ TEST(TCP_INIT_TO_OPENING, BY_SYNACK)
EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "93.184.216.34:80 -> 192.168.38.105:60111, proto: 6, domain: 0");
EXPECT_TRUE(session_get_tuple_dir(sess) == SESSION_DIR_S2C);
EXPECT_TRUE(session_get_tuple_direction(sess) == SESSION_DIRECTION_S2C);
EXPECT_TRUE(session_get_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
EXPECT_TRUE(session_has_dup_traffic(sess) == 0);
EXPECT_TRUE(session_get_closing_reason(sess) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_C2S, STAT_RAW_BYTES_RX) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_S2C, STAT_RAW_BYTES_RX) == 74);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_C2S, STAT_RAW_PKTS_RX) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_S2C, STAT_RAW_PKTS_RX) == 1);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_NEW) == 1);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_BYTES_RX) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 74);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_PKTS_RX) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_PKTS_RX) == 1);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START) == 1);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST) == 1);
EXPECT_TRUE(session_get_current_packet(sess) == &pkt);
EXPECT_TRUE(session_get_current_dir(sess) == SESSION_DIR_S2C);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIR_C2S) == NULL);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIR_S2C) != NULL);
EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) == NULL);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_S2C) != NULL);
session_dump(sess);
// check stat
@@ -245,21 +245,21 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN_SYNACK)
EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0");
EXPECT_TRUE(session_get_tuple_dir(sess) == SESSION_DIR_C2S);
EXPECT_TRUE(session_get_tuple_direction(sess) == SESSION_DIRECTION_C2S);
EXPECT_TRUE(session_get_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
EXPECT_TRUE(session_has_dup_traffic(sess) == 0);
EXPECT_TRUE(session_get_closing_reason(sess) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_C2S, STAT_RAW_BYTES_RX) == 78);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_S2C, STAT_RAW_BYTES_RX) == 74);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_C2S, STAT_RAW_PKTS_RX) == 1);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_S2C, STAT_RAW_PKTS_RX) == 1);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_NEW) == 1);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_BYTES_RX) == 78);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 74);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_PKTS_RX) == 1);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_PKTS_RX) == 1);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START) == 1);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST) == 2);
EXPECT_TRUE(session_get_current_packet(sess) == &pkt);
EXPECT_TRUE(session_get_current_dir(sess) == SESSION_DIR_S2C);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIR_C2S) != NULL);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIR_S2C) != NULL);
EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_S2C) != NULL);
session_dump(sess);
// check stat
@@ -346,21 +346,21 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN_SYNACK_ACK)
EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0");
EXPECT_TRUE(session_get_tuple_dir(sess) == SESSION_DIR_C2S);
EXPECT_TRUE(session_get_tuple_direction(sess) == SESSION_DIRECTION_C2S);
EXPECT_TRUE(session_get_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
EXPECT_TRUE(session_has_dup_traffic(sess) == 0);
EXPECT_TRUE(session_get_closing_reason(sess) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_C2S, STAT_RAW_BYTES_RX) == 78 + 66);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_S2C, STAT_RAW_BYTES_RX) == 74);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_C2S, STAT_RAW_PKTS_RX) == 1 + 1);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_S2C, STAT_RAW_PKTS_RX) == 1);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_NEW) == 1);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_BYTES_RX) == 78 + 66);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 74);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_PKTS_RX) == 1 + 1);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_PKTS_RX) == 1);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START) == 1);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST) == 3);
EXPECT_TRUE(session_get_current_packet(sess) == &pkt);
EXPECT_TRUE(session_get_current_dir(sess) == SESSION_DIR_C2S);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIR_C2S) != NULL);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIR_S2C) != NULL);
EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_S2C) != NULL);
session_dump(sess);
// check stat
@@ -429,7 +429,7 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN_RETRANSMISSION)
char syn_retransmission[1500] = {0};
memcpy(syn_retransmission, tcp_pkt1_c2s_syn, sizeof(tcp_pkt1_c2s_syn));
packet_parse(&pkt, (const char *)syn_retransmission, sizeof(tcp_pkt1_c2s_syn));
const struct pkt_layer *ipv4_layer = packet_get_innermost_layer(&pkt, LAYER_TYPE_IPV4);
const struct packet_layer *ipv4_layer = packet_get_innermost_layer(&pkt, LAYER_TYPE_IPV4);
struct ip *hdr = (struct ip *)ipv4_layer->hdr_ptr;
ipv4_hdr_set_ipid(hdr, 0x1234);
printf("<= Packet Parse: done\n\n");
@@ -443,21 +443,21 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN_RETRANSMISSION)
EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0");
EXPECT_TRUE(session_get_tuple_dir(sess) == SESSION_DIR_C2S);
EXPECT_TRUE(session_get_tuple_direction(sess) == SESSION_DIRECTION_C2S);
EXPECT_TRUE(session_get_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
EXPECT_TRUE(session_has_dup_traffic(sess) == 0);
EXPECT_TRUE(session_get_closing_reason(sess) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_C2S, STAT_RAW_BYTES_RX) == 78 + 78);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_S2C, STAT_RAW_BYTES_RX) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_C2S, STAT_RAW_PKTS_RX) == 1 + 1);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_S2C, STAT_RAW_PKTS_RX) == 0);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_NEW) == 1);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_BYTES_RX) == 78 + 78);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_PKTS_RX) == 1 + 1);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_PKTS_RX) == 0);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START) == 1);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST) == 2);
EXPECT_TRUE(session_get_current_packet(sess) == &pkt);
EXPECT_TRUE(session_get_current_dir(sess) == SESSION_DIR_C2S);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIR_C2S) != NULL);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIR_S2C) == NULL);
EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_S2C) == NULL);
session_dump(sess);
// check stat
@@ -526,7 +526,7 @@ TEST(TCP_INIT_TO_OPENING, BY_SYNACK_RETRANSMISSION)
char tcp_pkt_s2c_synack_retransmission[1500] = {0};
memcpy(tcp_pkt_s2c_synack_retransmission, tcp_pkt2_s2c_syn_ack, sizeof(tcp_pkt2_s2c_syn_ack));
packet_parse(&pkt, (const char *)tcp_pkt_s2c_synack_retransmission, sizeof(tcp_pkt2_s2c_syn_ack));
const struct pkt_layer *ipv4_layer = packet_get_innermost_layer(&pkt, LAYER_TYPE_IPV4);
const struct packet_layer *ipv4_layer = packet_get_innermost_layer(&pkt, LAYER_TYPE_IPV4);
EXPECT_TRUE(ipv4_layer);
struct ip *hdr = (struct ip *)ipv4_layer->hdr_ptr;
ipv4_hdr_set_ipid(hdr, 0x1234);
@@ -541,21 +541,21 @@ TEST(TCP_INIT_TO_OPENING, BY_SYNACK_RETRANSMISSION)
EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "93.184.216.34:80 -> 192.168.38.105:60111, proto: 6, domain: 0");
EXPECT_TRUE(session_get_tuple_dir(sess) == SESSION_DIR_S2C);
EXPECT_TRUE(session_get_tuple_direction(sess) == SESSION_DIRECTION_S2C);
EXPECT_TRUE(session_get_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
EXPECT_TRUE(session_has_dup_traffic(sess) == 0);
EXPECT_TRUE(session_get_closing_reason(sess) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_C2S, STAT_RAW_BYTES_RX) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_S2C, STAT_RAW_BYTES_RX) == 74 + 74);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_C2S, STAT_RAW_PKTS_RX) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_S2C, STAT_RAW_PKTS_RX) == 1 + 1);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_NEW) == 1);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_BYTES_RX) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 74 + 74);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_PKTS_RX) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_PKTS_RX) == 1 + 1);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START) == 1);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST) == 2);
EXPECT_TRUE(session_get_current_packet(sess) == &pkt);
EXPECT_TRUE(session_get_current_dir(sess) == SESSION_DIR_S2C);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIR_C2S) == NULL);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIR_S2C) != NULL);
EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) == NULL);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_S2C) != NULL);
session_dump(sess);
// check stat
@@ -631,21 +631,21 @@ TEST(TCP_INIT_TO_OPENING, BY_C2S_ASMMETRIC)
EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "192.168.38.105:60111 -> 93.184.216.34:80, proto: 6, domain: 0");
EXPECT_TRUE(session_get_tuple_dir(sess) == SESSION_DIR_C2S);
EXPECT_TRUE(session_get_tuple_direction(sess) == SESSION_DIRECTION_C2S);
EXPECT_TRUE(session_get_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
EXPECT_TRUE(session_has_dup_traffic(sess) == 0);
EXPECT_TRUE(session_get_closing_reason(sess) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_C2S, STAT_RAW_BYTES_RX) == 78 + 66);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_S2C, STAT_RAW_BYTES_RX) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_C2S, STAT_RAW_PKTS_RX) == 1 + 1);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_S2C, STAT_RAW_PKTS_RX) == 0);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_NEW) == 1);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_BYTES_RX) == 78 + 66);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_PKTS_RX) == 1 + 1);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_PKTS_RX) == 0);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START) == 1);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST) == 2);
EXPECT_TRUE(session_get_current_packet(sess) == &pkt);
EXPECT_TRUE(session_get_current_dir(sess) == SESSION_DIR_C2S);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIR_C2S) != NULL);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIR_S2C) == NULL);
EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_S2C) == NULL);
session_dump(sess);
// check stat
@@ -721,21 +721,21 @@ TEST(TCP_INIT_TO_OPENING, BY_S2C_ASMMETRIC)
EXPECT_TRUE(session_get_id(sess) != 0);
tuple6_to_str(session_get_tuple(sess), buffer, sizeof(buffer));
EXPECT_STREQ(buffer, "93.184.216.34:80 -> 192.168.38.105:60111, proto: 6, domain: 0");
EXPECT_TRUE(session_get_tuple_dir(sess) == SESSION_DIR_S2C);
EXPECT_TRUE(session_get_tuple_direction(sess) == SESSION_DIRECTION_S2C);
EXPECT_TRUE(session_get_state(sess) == SESSION_STATE_OPENING);
EXPECT_TRUE(session_get_type(sess) == SESSION_TYPE_TCP);
EXPECT_TRUE(session_has_dup_traffic(sess) == 0);
EXPECT_TRUE(session_get_closing_reason(sess) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_C2S, STAT_RAW_BYTES_RX) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_S2C, STAT_RAW_BYTES_RX) == 74 + 66);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_C2S, STAT_RAW_PKTS_RX) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIR_S2C, STAT_RAW_PKTS_RX) == 1 + 1);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_NEW) == 1);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_BYTES_RX) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 74 + 66);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_PKTS_RX) == 0);
EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_PKTS_RX) == 1 + 1);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START) == 1);
EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST) == 2);
EXPECT_TRUE(session_get_current_packet(sess) == &pkt);
EXPECT_TRUE(session_get_current_dir(sess) == SESSION_DIR_S2C);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIR_C2S) == NULL);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIR_S2C) != NULL);
EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) == NULL);
EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_S2C) != NULL);
session_dump(sess);
// check stat