diff --git a/script/CMakeLists.txt b/script/CMakeLists.txt index 16f3cfd..35cd5b8 100644 --- a/script/CMakeLists.txt +++ b/script/CMakeLists.txt @@ -1 +1,2 @@ -install(FILES stellar_stat.sh DESTINATION ./ COMPONENT Program) \ No newline at end of file +install(FILES python_stat.sh DESTINATION ./ COMPONENT Program) +install(FILES shell_stat.sh DESTINATION ./ COMPONENT Program) \ No newline at end of file diff --git a/script/stellar_stat.sh b/script/python_stat.sh similarity index 65% rename from script/stellar_stat.sh rename to script/python_stat.sh index e4c5134..2cfb69b 100644 --- a/script/stellar_stat.sh +++ b/script/python_stat.sh @@ -1,3 +1,3 @@ #!/bin/bash -/opt/MESA/bin/fieldstat_exporter.py local -j /opt/tsg/stellar/log/stellar.fs4 -l --clear-screen -e +/opt/MESA/bin/fieldstat_exporter.py local -j /opt/tsg/stellar/log/stellar_fs4.json -l --clear-screen -e diff --git a/script/shell_stat.sh b/script/shell_stat.sh new file mode 100644 index 0000000..9590850 --- /dev/null +++ b/script/shell_stat.sh @@ -0,0 +1,99 @@ +#!/bin/bash +x + +#cat stellar_fs4.json |jq +#[ +# { +# "name": "stellar", +# "tags": {}, +# "fields": { +# "dev_rx_pkts": 90099, +# "dev_rx_bytes": 63205423, +# "dev_tx_pkts": 90082, +# "dev_tx_bytes": 63194807, +# "keep_alive_pkts": 0, +# "keep_alive_bytes": 0, +# "raw_rx_pkts": 90099, +# "raw_rx_bytes": 63205423, +# "raw_tx_pkts": 90082, +# "raw_tx_bytes": 63194807, +# "ctrl_rx_pkts": 0, +# "ctrl_rx_bytes": 0, +# "ctrl_tx_pkts": 0, +# "ctrl_tx_bytes": 0, +# "tcp_sess_used": 480, +# "tcp_sess_opening": 0, +# "tcp_sess_active": 141, +# "tcp_sess_closing": 339, +# "tcp_sess_discard": 0, +# "tcp_sess_closed": 0, +# "udp_sess_used": 0, +# "udp_sess_opening": 0, +# "udp_sess_active": 0, +# "udp_sess_closing": 0, +# "udp_sess_discard": 0, +# "udp_sess_closed": 0, +# "tcp_sess_evicted": 0, +# "udp_sess_evicted": 0, +# "udp_pkts_nospace_bypass": 0, +# "tcp_pkts_nospace_bypass": 0, +# "tcp_pkts_nosess_bypass": 4769, +# "tcp_pkts_duped_bypass": 1796, +# "udp_pkts_duped_bypass": 382, +# "udp_pkts_evctd_bypass": 0, +# "tcp_seg_received": 49833, +# "tcp_seg_expired": 0, +# "tcp_seg_overlap": 3012, +# "tcp_seg_no_space": 36452, +# "tcp_seg_inorder": 6189, +# "tcp_seg_reorded": 218, +# "tcp_seg_buffered": 5967, +# "tcp_seg_released": 218 +# }, +# "timestamp_ms": 1713053113549 +# } +#] + +calculate() { + local curr_data=$1 + local prev_data=$2 + + local fields=($(echo "$curr_data" | jq -r '.[].fields | to_entries | .[] | .key' | grep -v timestamp_ms)) + local curr_ts=$(echo "$curr_data" | jq -r '.[].timestamp_ms') + local prev_ts=$(echo "$prev_data" | jq -r '.[].timestamp_ms') + local diff_ts=$((($curr_ts - $prev_ts) / 1000)) + local seconds=$((curr_ts / 1000)) + local buffer=() + + local curr_fileds=$(echo "$curr_data" | jq -r '.[].fields' | grep -v timestamp_ms) + local prev_fileds=$(echo "$prev_data" | jq -r '.[].fields' | grep -v timestamp_ms) + + buffer+=("====================================$(date -d "@$seconds" +"%Y-%m-%d %H:%M:%S")====================================\n") + buffer+=("$(printf "%-30s" Field)$(printf "%-20s" Sum)$(printf "%-20s" Speed)\n") + local result=() + for field in "${fields[@]}"; do + local curr_val=$(echo "$curr_fileds" | grep $field | awk '{print $2}' | sed 's/,//g') + local prev_val=$(echo "$prev_fileds" | grep $field | awk '{print $2}' | sed 's/,//g') + local diff_val=$((curr_val - prev_val)) + local speed=0 + if [ $diff_ts -eq 0 ]; then + speed=0 + else + speed=$((diff_val / diff_ts)) + fi + buffer+=("$(printf "%-30s" $field)$(printf "%-20s" $curr_val)$(printf "%-20s" $speed)\n") + done + buffer+=("===========================================================================================\n") + clear + echo -e "${buffer[@]}" +} + +prev_data="" + +while true; do + curr_data=$(cat /opt/tsg/stellar/log/stellar_fs4.json) + if [ ! -z "$prev_data" ]; then + calculate "$curr_data" "$prev_data" + fi + prev_data="$curr_data" + sleep 1 +done diff --git a/src/plugin/plugin_manager.cpp b/src/plugin/plugin_manager.cpp index 3ec3105..83c3d5b 100644 --- a/src/plugin/plugin_manager.cpp +++ b/src/plugin/plugin_manager.cpp @@ -42,7 +42,7 @@ void plugin_manager_dispatch_session(struct plugin_manager *mgr, struct session struct tcp_segment *seg; enum session_state state = session_get_state(sess); enum session_type type = session_get_type(sess); - // PLUGIN_MANAGER_LOG_DEBUG("=> plugin dispatch session: %u %s %s %s", session_get_id(sess), session_get_tuple_str(sess), session_type_to_str(type), session_state_to_str(state)); + PLUGIN_MANAGER_LOG_DEBUG("=> plugin dispatch session: %u %s %s %s", session_get_id(sess), session_get_tuple_str(sess), session_type_to_str(type), session_state_to_str(state)); // session_print(sess); if (packet_is_ctrl(pkt)) diff --git a/src/session/session_manager.cpp b/src/session/session_manager.cpp index 63ada99..1094bb6 100644 --- a/src/session/session_manager.cpp +++ b/src/session/session_manager.cpp @@ -1,3 +1,4 @@ +#include #include #include @@ -234,24 +235,47 @@ static inline bool before(uint32_t seq1, uint32_t seq2) return (int32_t)(seq1 - seq2) < 0; } -static void tcp_clean(struct session *sess) +static void tcp_clean(struct session_manager *mgr, struct session *sess) { - tcp_reassembly_free(sess->tcp_halfs[SESSION_DIRECTION_C2S].assembler); - tcp_reassembly_free(sess->tcp_halfs[SESSION_DIRECTION_S2C].assembler); + struct tcp_reassembly *c2s_ssembler = sess->tcp_halfs[SESSION_DIRECTION_C2S].assembler; + struct tcp_reassembly *s2c_ssembler = sess->tcp_halfs[SESSION_DIRECTION_S2C].assembler; + struct tcp_segment *seg; + if (c2s_ssembler) + { + while ((seg = tcp_reassembly_expire(c2s_ssembler, UINT64_MAX))) + { + session_inc_stat(sess, SESSION_DIRECTION_C2S, STAT_TCP_SEGS_RELEASED, 1); + session_inc_stat(sess, SESSION_DIRECTION_C2S, STAT_TCP_PLDS_RELEASED, seg->len); + mgr->stat.nr_tcp_seg_released++; + tcp_segment_free(seg); + } + tcp_reassembly_free(c2s_ssembler); + } + if (s2c_ssembler) + { + while ((seg = tcp_reassembly_expire(s2c_ssembler, UINT64_MAX))) + { + session_inc_stat(sess, SESSION_DIRECTION_S2C, STAT_TCP_SEGS_RELEASED, 1); + session_inc_stat(sess, SESSION_DIRECTION_S2C, STAT_TCP_PLDS_RELEASED, seg->len); + mgr->stat.nr_tcp_seg_released++; + tcp_segment_free(seg); + } + tcp_reassembly_free(s2c_ssembler); + } } -static int tcp_init(struct session *sess, uint8_t tcp_reassembly_enable, uint64_t tcp_reassembly_max_timeout, uint64_t tcp_reassembly_max_segments) +static int tcp_init(struct session_manager *mgr, struct session *sess) { - if (!tcp_reassembly_enable) + if (!mgr->opts.tcp_reassembly_enable) { return 0; } - sess->tcp_halfs[SESSION_DIRECTION_C2S].assembler = tcp_reassembly_new(tcp_reassembly_max_timeout, tcp_reassembly_max_segments); - sess->tcp_halfs[SESSION_DIRECTION_S2C].assembler = tcp_reassembly_new(tcp_reassembly_max_timeout, tcp_reassembly_max_segments); + sess->tcp_halfs[SESSION_DIRECTION_C2S].assembler = tcp_reassembly_new(mgr->opts.tcp_reassembly_max_timeout, mgr->opts.tcp_reassembly_max_segments); + sess->tcp_halfs[SESSION_DIRECTION_S2C].assembler = tcp_reassembly_new(mgr->opts.tcp_reassembly_max_timeout, mgr->opts.tcp_reassembly_max_segments); if (sess->tcp_halfs[SESSION_DIRECTION_C2S].assembler == NULL || sess->tcp_halfs[SESSION_DIRECTION_S2C].assembler == NULL) { - tcp_clean(sess); + tcp_clean(mgr, sess); return -1; } @@ -479,15 +503,18 @@ static int duplicated_packet_bypass(struct session_manager *mgr, struct session * Session Manager ******************************************************************************/ -static void session_update(struct session *sess, enum session_state next_state, const struct packet *pkt, const struct tuple6 *key, enum session_direction dir, uint64_t now) +static void session_update(struct session *sess, enum session_state next_state, const struct packet *pkt, const struct tuple6 *key, enum session_direction dir) { + struct timespec real; + clock_gettime(CLOCK_REALTIME, &real); // must be realtime + if (session_get_state(sess) == SESSION_STATE_INIT) { session_set_id(sess, id_generator_alloc()); session_set_tuple(sess, key); session_set_tuple_direction(sess, dir); tuple6_to_str(key, sess->tuple_str, sizeof(sess->tuple_str)); - session_set_timestamp(sess, SESSION_TIMESTAMP_START, now); + session_set_timestamp(sess, SESSION_TIMESTAMP_START, real.tv_sec); switch (key->ip_proto) { case IPPROTO_TCP: @@ -512,7 +539,7 @@ static void session_update(struct session *sess, enum session_state next_state, session_set_current_packet(sess, pkt); session_set_current_direction(sess, dir); - session_set_timestamp(sess, SESSION_TIMESTAMP_LAST, now); + session_set_timestamp(sess, SESSION_TIMESTAMP_LAST, real.tv_sec); session_set_state(sess, next_state); } @@ -588,10 +615,10 @@ static struct session *session_manager_new_tcp_session(struct session_manager *m sess->mgr_stat = &mgr->stat; enum session_state next_state = session_transition_run(SESSION_STATE_INIT, TCP_SYN); - session_update(sess, next_state, pkt, key, dir, now); + session_update(sess, next_state, pkt, key, dir); session_transition_log(sess, SESSION_STATE_INIT, next_state, TCP_SYN); - if (tcp_init(sess, mgr->opts.tcp_reassembly_enable, mgr->opts.tcp_reassembly_max_timeout, mgr->opts.tcp_reassembly_max_segments) == -1) + if (tcp_init(mgr, sess) == -1) { assert(0); session_pool_push(mgr->sess_pool, sess); @@ -634,7 +661,7 @@ static struct session *session_manager_new_udp_session(struct session_manager *m enum session_direction dir = identify_direction_by_port(ntohs(key->src_port), ntohs(key->dst_port)); enum session_state next_state = session_transition_run(SESSION_STATE_INIT, UDP_DATA); - session_update(sess, next_state, pkt, key, dir, now); + session_update(sess, next_state, pkt, key, dir); session_transition_log(sess, SESSION_STATE_INIT, next_state, UDP_DATA); session_timer_update(mgr->sess_timer, sess, now + mgr->opts.udp_data_timeout); @@ -663,7 +690,7 @@ static int session_manager_update_tcp_session(struct session_manager *mgr, struc enum session_state next_state = session_transition_run(curr_state, inputs); // update session - session_update(sess, next_state, pkt, key, dir, now); + session_update(sess, next_state, pkt, key, dir); session_transition_log(sess, curr_state, next_state, inputs); // update tcp @@ -741,7 +768,7 @@ static int session_manager_update_udp_session(struct session_manager *mgr, struc enum session_direction dir = identify_direction_by_history(sess, key); enum session_state curr_state = session_get_state(sess); enum session_state next_state = session_transition_run(curr_state, UDP_DATA); - session_update(sess, next_state, pkt, key, dir, now); + session_update(sess, next_state, pkt, key, dir); session_transition_log(sess, curr_state, next_state, UDP_DATA); if (session_get_state(sess) == SESSION_STATE_DISCARD) @@ -894,7 +921,7 @@ void session_manager_free_session(struct session_manager *mgr, struct session *s switch (session_get_type(sess)) { case SESSION_TYPE_TCP: - tcp_clean(sess); + tcp_clean(mgr, sess); session_table_del(mgr->tcp_sess_table, session_get_tuple(sess)); SESS_MGR_STAT_DEC(&mgr->stat, session_get_state(sess), tcp); mgr->stat.nr_tcp_sess_used--; diff --git a/src/session/test/gtest_state_tcp_active_to_closing.cpp b/src/session/test/gtest_state_tcp_active_to_closing.cpp index c35fa14..722c84e 100644 --- a/src/session/test/gtest_state_tcp_active_to_closing.cpp +++ b/src/session/test/gtest_state_tcp_active_to_closing.cpp @@ -126,8 +126,8 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_FIN_FIN) EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 66); EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_PKTS_RX) == 1 + 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -214,8 +214,8 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_C2S_RST) 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 + 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) == 3); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -302,8 +302,8 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_S2C_RST) EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 66); 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -432,8 +432,8 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_C2S_HALF_CLOSED_TIMEOUT) 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 + 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) == 3); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -513,8 +513,8 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_S2C_HALF_CLOSED_TIMEOUT) EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 66); 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); diff --git a/src/session/test/gtest_state_tcp_init_to_opening.cpp b/src/session/test/gtest_state_tcp_init_to_opening.cpp index e1a2727..f7224d0 100644 --- a/src/session/test/gtest_state_tcp_init_to_opening.cpp +++ b/src/session/test/gtest_state_tcp_init_to_opening.cpp @@ -85,8 +85,8 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN) 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -164,8 +164,8 @@ TEST(TCP_INIT_TO_OPENING, BY_SYNACK) 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) == NULL); @@ -254,8 +254,8 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN_SYNACK) 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -355,8 +355,8 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN_SYNACK_ACK) 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -452,8 +452,8 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN_RETRANSMISSION) 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -550,8 +550,8 @@ TEST(TCP_INIT_TO_OPENING, BY_SYNACK_RETRANSMISSION) 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) == NULL); @@ -640,8 +640,8 @@ TEST(TCP_INIT_TO_OPENING, BY_C2S_ASMMETRIC) 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -730,8 +730,8 @@ TEST(TCP_INIT_TO_OPENING, BY_S2C_ASMMETRIC) 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) == NULL); diff --git a/src/session/test/gtest_state_tcp_init_to_opening_to_active_to_closing_to_closed.cpp b/src/session/test/gtest_state_tcp_init_to_opening_to_active_to_closing_to_closed.cpp index 980093b..e565011 100644 --- a/src/session/test/gtest_state_tcp_init_to_opening_to_active_to_closing_to_closed.cpp +++ b/src/session/test/gtest_state_tcp_init_to_opening_to_active_to_closing_to_closed.cpp @@ -81,8 +81,8 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST) 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -112,8 +112,8 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST) 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -143,8 +143,8 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST) 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -174,8 +174,8 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST) 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 + 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) == 4); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -205,8 +205,8 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST) 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) == 1 + 1 + 1); 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) == 5); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -236,8 +236,8 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST) EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 74 + 66 + 1354); EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_PKTS_RX) == 1 + 1 + 1); EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_PKTS_RX) == 1 + 1 + 1); - EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START) == 1); - EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST) == 6); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -267,8 +267,8 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST) EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 74 + 66 + 1354 + 385); EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_PKTS_RX) == 1 + 1 + 1); EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_PKTS_RX) == 1 + 1 + 1 + 1); - EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START) == 1); - EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST) == 7); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -298,8 +298,8 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST) EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 74 + 66 + 1354 + 385); EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_PKTS_RX) == 1 + 1 + 1 + 1); EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_PKTS_RX) == 1 + 1 + 1 + 1); - EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START) == 1); - EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST) == 8); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -329,8 +329,8 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST) EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 74 + 66 + 1354 + 385); EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_PKTS_RX) == 1 + 1 + 1 + 1 + 1); EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_PKTS_RX) == 1 + 1 + 1 + 1); - EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START) == 1); - EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST) == 9); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -360,8 +360,8 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST) EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 74 + 66 + 1354 + 385 + 66); EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_PKTS_RX) == 1 + 1 + 1 + 1 + 1); EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_PKTS_RX) == 1 + 1 + 1 + 1 + 1); - EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START) == 1); - EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST) == 10); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -391,8 +391,8 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST) EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 74 + 66 + 1354 + 385 + 66); EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_C2S, STAT_RAW_PKTS_RX) == 1 + 1 + 1 + 1 + 1 + 1); EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_PKTS_RX) == 1 + 1 + 1 + 1 + 1); - EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START) == 1); - EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST) == 11); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); diff --git a/src/session/test/gtest_state_tcp_opening_to_active.cpp b/src/session/test/gtest_state_tcp_opening_to_active.cpp index 0229ef3..54cbcc0 100644 --- a/src/session/test/gtest_state_tcp_opening_to_active.cpp +++ b/src/session/test/gtest_state_tcp_opening_to_active.cpp @@ -95,8 +95,8 @@ TEST(TCP_OPENING_TO_ACTIVE, BY_SYN_C2S_DATA) 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -185,8 +185,8 @@ TEST(TCP_OPENING_TO_ACTIVE, BY_SYNACK_S2C_DATA) EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 74 + 1354); 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) == NULL); diff --git a/src/session/test/gtest_state_tcp_opening_to_closing.cpp b/src/session/test/gtest_state_tcp_opening_to_closing.cpp index 2290fee..2cb9e24 100644 --- a/src/session/test/gtest_state_tcp_opening_to_closing.cpp +++ b/src/session/test/gtest_state_tcp_opening_to_closing.cpp @@ -107,8 +107,8 @@ TEST(TCP_OPENING_TO_CLOSING, BY_FIN_FIN) EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 66); 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -203,8 +203,8 @@ TEST(TCP_OPENING_TO_CLOSING, BY_C2S_RST) 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -299,8 +299,8 @@ TEST(TCP_OPENING_TO_CLOSING, BY_S2C_RST) EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 66); 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -446,8 +446,8 @@ TEST(TCP_OPENING_TO_CLOSING, BY_HANDSHAKE_TIMEOUT) 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -547,8 +547,8 @@ TEST(TCP_OPENING_TO_CLOSING, BY_DATA_TIMEOUT) 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -637,8 +637,8 @@ TEST(TCP_OPENING_TO_CLOSING, BY_C2S_HALF_FIN) 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -726,8 +726,8 @@ TEST(TCP_OPENING_TO_CLOSING, BY_S2C_HALF_FIN) EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 66); 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); diff --git a/src/session/test/gtest_state_udp_init_to_opening_to_active_to_closing.cpp b/src/session/test/gtest_state_udp_init_to_opening_to_active_to_closing.cpp index be890c3..7903552 100644 --- a/src/session/test/gtest_state_udp_init_to_opening_to_active_to_closing.cpp +++ b/src/session/test/gtest_state_udp_init_to_opening_to_active_to_closing.cpp @@ -80,8 +80,8 @@ TEST(UDP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING, TEST) 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -110,8 +110,8 @@ TEST(UDP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING, TEST) EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 550); 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); diff --git a/src/session/test/gtest_state_udp_init_to_opening_to_closing.cpp b/src/session/test/gtest_state_udp_init_to_opening_to_closing.cpp index 87a09cb..aaa85e1 100644 --- a/src/session/test/gtest_state_udp_init_to_opening_to_closing.cpp +++ b/src/session/test/gtest_state_udp_init_to_opening_to_closing.cpp @@ -85,8 +85,8 @@ TEST(UDP_INIT_TO_OPENING_TO_CLOSING, BY_C2S) 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_C2S); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) != NULL); @@ -165,8 +165,8 @@ TEST(UDP_INIT_TO_OPENING_TO_CLOSING, BY_S2C) EXPECT_TRUE(session_get_stat(sess, SESSION_DIRECTION_S2C, STAT_RAW_BYTES_RX) == 550); 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_timestamp(sess, SESSION_TIMESTAMP_START)); + EXPECT_TRUE(session_get_timestamp(sess, SESSION_TIMESTAMP_LAST)); EXPECT_TRUE(session_get_current_packet(sess) == &pkt); EXPECT_TRUE(session_get_current_direction(sess) == SESSION_DIRECTION_S2C); EXPECT_TRUE(session_get_1st_packet(sess, SESSION_DIRECTION_C2S) == NULL); diff --git a/src/stellar/stat.cpp b/src/stellar/stat.cpp index df77946..de1264c 100644 --- a/src/stellar/stat.cpp +++ b/src/stellar/stat.cpp @@ -94,7 +94,7 @@ struct stellar_stat // python3 -m pip install prettytable // python3 -m pip install jinja2 -// /opt/MESA/bin/fieldstat_exporter.py local -j log/stellar.fs4 -e -l --clear-screen +// /opt/MESA/bin/fieldstat_exporter.py local -j log/stellar_fs4.json -e -l --clear-screen struct stellar_stat *stellar_stat_new(uint16_t nr_thread) { struct stellar_stat *stat = (struct stellar_stat *)calloc(1, sizeof(struct stellar_stat)); @@ -135,19 +135,19 @@ struct stellar_stat *stellar_stat_new(uint16_t nr_thread) stat->ids.ctrl_tx_pkts = fieldstat_easy_register_counter(stat->fs, "ctrl_tx_pkts"); stat->ids.ctrl_tx_bytes = fieldstat_easy_register_counter(stat->fs, "ctrl_tx_bytes"); // TCP session - stat->ids.nr_tcp_sess_used = fieldstat_easy_register_counter(stat->fs, "tcp_sess_used"); - stat->ids.nr_tcp_sess_opening = fieldstat_easy_register_counter(stat->fs, "tcp_sess_opening"); - stat->ids.nr_tcp_sess_active = fieldstat_easy_register_counter(stat->fs, "tcp_sess_active"); - stat->ids.nr_tcp_sess_closing = fieldstat_easy_register_counter(stat->fs, "tcp_sess_closing"); - stat->ids.nr_tcp_sess_discard = fieldstat_easy_register_counter(stat->fs, "tcp_sess_discard"); - stat->ids.nr_tcp_sess_closed = fieldstat_easy_register_counter(stat->fs, "tcp_sess_closed"); + stat->ids.nr_tcp_sess_used = fieldstat_easy_register_counter(stat->fs, "curr_tcp_sess_used"); + stat->ids.nr_tcp_sess_opening = fieldstat_easy_register_counter(stat->fs, "curr_tcp_sess_opening"); + stat->ids.nr_tcp_sess_active = fieldstat_easy_register_counter(stat->fs, "curr_tcp_sess_active"); + stat->ids.nr_tcp_sess_closing = fieldstat_easy_register_counter(stat->fs, "curr_tcp_sess_closing"); + stat->ids.nr_tcp_sess_discard = fieldstat_easy_register_counter(stat->fs, "curr_tcp_sess_discard"); + stat->ids.nr_tcp_sess_closed = fieldstat_easy_register_counter(stat->fs, "curr_tcp_sess_closed"); // UDP session - stat->ids.nr_udp_sess_used = fieldstat_easy_register_counter(stat->fs, "udp_sess_used"); - stat->ids.nr_udp_sess_opening = fieldstat_easy_register_counter(stat->fs, "udp_sess_opening"); - stat->ids.nr_udp_sess_active = fieldstat_easy_register_counter(stat->fs, "udp_sess_active"); - stat->ids.nr_udp_sess_closing = fieldstat_easy_register_counter(stat->fs, "udp_sess_closing"); - stat->ids.nr_udp_sess_discard = fieldstat_easy_register_counter(stat->fs, "udp_sess_discard"); - stat->ids.nr_udp_sess_closed = fieldstat_easy_register_counter(stat->fs, "udp_sess_closed"); + stat->ids.nr_udp_sess_used = fieldstat_easy_register_counter(stat->fs, "curr_udp_sess_used"); + stat->ids.nr_udp_sess_opening = fieldstat_easy_register_counter(stat->fs, "curr_udp_sess_opening"); + stat->ids.nr_udp_sess_active = fieldstat_easy_register_counter(stat->fs, "curr_udp_sess_active"); + stat->ids.nr_udp_sess_closing = fieldstat_easy_register_counter(stat->fs, "curr_udp_sess_closing"); + stat->ids.nr_udp_sess_discard = fieldstat_easy_register_counter(stat->fs, "curr_udp_sess_discard"); + stat->ids.nr_udp_sess_closed = fieldstat_easy_register_counter(stat->fs, "curr_udp_sess_closed"); // Evicted session stat->ids.nr_tcp_sess_evicted = fieldstat_easy_register_counter(stat->fs, "tcp_sess_evicted"); stat->ids.nr_udp_sess_evicted = fieldstat_easy_register_counter(stat->fs, "udp_sess_evicted"); @@ -320,10 +320,10 @@ void stellar_stat_output(struct stellar_stat *stat) fieldstat_easy_output(stat->fs, &buff, &len); if (buff) { - FILE *fp = fopen("/opt/tsg/stellar/log/stellar.fs4", "w+"); + FILE *fp = fopen("/opt/tsg/stellar/log/stellar_fs4.json", "w+"); if (fp == NULL) { - STAT_LOG_ERROR("failed to open file: %s, %s", "/opt/tsg/stellar/log/stellar.fs4", strerror(errno)); + STAT_LOG_ERROR("failed to open file: %s, %s", "/opt/tsg/stellar/log/stellar_fs4.json", strerror(errno)); } else { diff --git a/src/timestamp/test/gtest_timestamp.cpp b/src/timestamp/test/gtest_timestamp.cpp index 32f608f..758444d 100644 --- a/src/timestamp/test/gtest_timestamp.cpp +++ b/src/timestamp/test/gtest_timestamp.cpp @@ -21,7 +21,7 @@ TEST(TIMESTAMP, GET) printf("last_sec: %lu, last_msec: %lu\n", last_sec, last_msec); printf("curr_sec: %lu, curr_msec: %lu\n", curr_sec, curr_msec); EXPECT_TRUE(curr_sec == last_sec); - EXPECT_TRUE(curr_msec - last_msec >= 1 && curr_msec - last_msec <= 2); + EXPECT_TRUE(curr_msec - last_msec >= 1); usleep(1000 * 1000); // 1s timestamp_update(); @@ -33,7 +33,7 @@ TEST(TIMESTAMP, GET) printf("last_sec: %lu, last_msec: %lu\n", last_sec, last_msec); printf("curr_sec: %lu, curr_msec: %lu\n", curr_sec, curr_msec); EXPECT_TRUE(curr_sec - last_sec == 1); - EXPECT_TRUE(curr_msec - last_msec >= 1000 && curr_msec - last_msec <= 1001); + EXPECT_TRUE(curr_msec - last_msec >= 1000); } int main(int argc, char **argv) diff --git a/src/timestamp/timestamp.cpp b/src/timestamp/timestamp.cpp index 4cac82a..72bd37c 100644 --- a/src/timestamp/timestamp.cpp +++ b/src/timestamp/timestamp.cpp @@ -6,6 +6,16 @@ // 1 ms = 1000 us // 1 us = 1000 ns +/* + * The maximum number of seconds that can be stored in the time_t value is 2147483647 –- a little over 68 years. + * + * struct timespec + * { + * time_t tv_sec; // seconds + * long tv_nsec; // nanoseconds + * }; + */ + struct timestamp { struct timespec ts; @@ -18,6 +28,17 @@ struct timestamp void timestamp_update() { + /* + * CLOCK_MONOTONIC + * + * On Linux, that point corresponds to the number of sec‐ + * onds that the system has been running since it was booted. + * + * The CLOCK_MONOTONIC clock is not affected by discontinuous + * jumps in the system time (e.g., if the system administrator + * manually changes the clock), but is affected by the incremen‐ + * tal adjustments performed by adjtime(3) and NTP. + */ clock_gettime(CLOCK_MONOTONIC, &g_timestamp.ts); uint64_t current_timestamp_ms = g_timestamp.ts.tv_sec * 1000 + g_timestamp.ts.tv_nsec / 1000000; @@ -32,7 +53,6 @@ uint64_t timestamp_get_sec() return ATOMIC_READ(&g_timestamp.ts_in_sec); } -// TODO uint64_t 溢出 uint64_t timestamp_get_msec() { return ATOMIC_READ(&g_timestamp.ts_in_msec);