built snowflake into the session manager
This commit is contained in:
@@ -108,6 +108,13 @@ target_link_libraries(gtest_sess_mgr_scan session_manager gtest)
|
||||
add_executable(gtest_case_tcp_fast_open gtest_case_tcp_fast_open.cpp)
|
||||
target_link_libraries(gtest_case_tcp_fast_open session_manager gtest)
|
||||
|
||||
###############################################################################
|
||||
# session id decoder
|
||||
###############################################################################
|
||||
|
||||
add_executable(session_id_decoder session_id_decoder.cpp)
|
||||
target_link_libraries(session_id_decoder)
|
||||
|
||||
###############################################################################
|
||||
# gtest
|
||||
###############################################################################
|
||||
|
||||
@@ -10,6 +10,7 @@ extern "C"
|
||||
#include "session_manager.h"
|
||||
|
||||
static struct session_manager_config cfg = {
|
||||
.session_id_seed = 0xFFFFF,
|
||||
.tcp_session_max = 256,
|
||||
.udp_session_max = 256,
|
||||
|
||||
|
||||
@@ -6,12 +6,6 @@
|
||||
#include "session_private.h"
|
||||
#include "default_config.h"
|
||||
|
||||
static uint64_t session_id_generator(uint64_t now_ms __attribute__((unused)))
|
||||
{
|
||||
static uint64_t count = 0;
|
||||
return (++count);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* case: TCP init -> opening (by TCP Fast Open)
|
||||
******************************************************************************/
|
||||
@@ -274,7 +268,6 @@ TEST(CASE, TCP_FAST_OPEN)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S fast open packet\n");
|
||||
|
||||
@@ -6,12 +6,6 @@
|
||||
#include "default_config.h"
|
||||
#include "test_packets.h"
|
||||
|
||||
static uint64_t session_id_generator(uint64_t now_ms __attribute__((unused)))
|
||||
{
|
||||
static uint64_t count = 0;
|
||||
return (++count);
|
||||
}
|
||||
|
||||
static void packet_set_ip_id(struct packet *pkt, uint16_t ip_id)
|
||||
{
|
||||
const struct layer_private *ipv4_layer = packet_get_innermost_layer(pkt, LAYER_PROTO_IPV4);
|
||||
@@ -30,7 +24,6 @@ TEST(TCP_DUPKT_FILTER_ENABLE, SYN_DUP)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
@@ -97,7 +90,6 @@ TEST(TCP_DUPKT_FILTER_ENABLE, SYNACK_DUP)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// S2C SYNACK Packet
|
||||
printf("\n=> Packet Parse: TCP S2C SYNACK packet\n");
|
||||
@@ -165,7 +157,6 @@ TEST(TCP_DUPKT_FILTER_ENABLE, SKIP)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
@@ -252,7 +243,6 @@ TEST(TCP_DUPKT_FILTER_DISABLE, SYN_DUP)
|
||||
|
||||
mgr = session_manager_new(&_cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
@@ -303,7 +293,6 @@ TEST(TCP_DUPKT_FILTER_DISABLE, SYNACK_DUP)
|
||||
|
||||
mgr = session_manager_new(&_cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// S2C SYNACK Packet
|
||||
printf("\n=> Packet Parse: TCP S2C SYNACK packet\n");
|
||||
|
||||
@@ -7,12 +7,6 @@
|
||||
#include "default_config.h"
|
||||
#include "test_packets.h"
|
||||
|
||||
static uint64_t session_id_generator(uint64_t now_ms __attribute__((unused)))
|
||||
{
|
||||
static uint64_t count = 0;
|
||||
return (++count);
|
||||
}
|
||||
|
||||
static void packet_set_ip_src_addr(struct packet *pkt, uint32_t addr)
|
||||
{
|
||||
const struct layer_private *ipv4_layer = packet_get_innermost_layer(pkt, LAYER_PROTO_IPV4);
|
||||
@@ -34,7 +28,6 @@ TEST(TCP_OVERLOAD, EVICT_OLD_SESS)
|
||||
|
||||
mgr = session_manager_new(&_cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
@@ -78,7 +71,6 @@ TEST(TCP_OVERLOAD, EVICT_NEW_SESS)
|
||||
|
||||
mgr = session_manager_new(&_cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
|
||||
@@ -7,12 +7,6 @@
|
||||
#include "default_config.h"
|
||||
#include "test_packets.h"
|
||||
|
||||
static uint64_t session_id_generator(uint64_t now_ms __attribute__((unused)))
|
||||
{
|
||||
static uint64_t count = 0;
|
||||
return (++count);
|
||||
}
|
||||
|
||||
static void packet_set_ip_src_addr(struct packet *pkt, uint32_t addr)
|
||||
{
|
||||
const struct layer_private *ipv4_layer = packet_get_innermost_layer(pkt, LAYER_PROTO_IPV4);
|
||||
@@ -35,7 +29,6 @@ TEST(UDP_OVERLOAD, EVICT_OLD_SESS)
|
||||
|
||||
mgr = session_manager_new(&_cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S REQ Packet
|
||||
printf("\n=> Packet Parse: UDP C2S REQ packet\n");
|
||||
@@ -127,7 +120,6 @@ TEST(UDP_OVERLOAD, EVICT_NEW_SESS)
|
||||
|
||||
mgr = session_manager_new(&_cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S REQ Packet
|
||||
printf("\n=> Packet Parse: UDP C2S REQ packet\n");
|
||||
|
||||
@@ -6,12 +6,6 @@
|
||||
#include "default_config.h"
|
||||
#include "test_packets.h"
|
||||
|
||||
static uint64_t session_id_generator(uint64_t now_ms __attribute__((unused)))
|
||||
{
|
||||
static uint64_t count = 0;
|
||||
return (++count);
|
||||
}
|
||||
|
||||
static inline void packet_overwrite_src_addr(struct packet *pkt, struct in_addr addr)
|
||||
{
|
||||
const struct layer_private *ipv4_layer = packet_get_innermost_layer(pkt, LAYER_PROTO_IPV4);
|
||||
@@ -93,7 +87,6 @@ TEST(SESS_MGR_SCAN, OPTS)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// new session
|
||||
memset(&pkt, 0, sizeof(pkt));
|
||||
|
||||
@@ -6,12 +6,6 @@
|
||||
#include "default_config.h"
|
||||
#include "test_packets.h"
|
||||
|
||||
static uint64_t session_id_generator(uint64_t now_ms __attribute__((unused)))
|
||||
{
|
||||
static uint64_t count = 0;
|
||||
return (++count);
|
||||
}
|
||||
|
||||
static void hex_dump(const char *payload, uint32_t len)
|
||||
{
|
||||
printf("Payload Length: %u\n", len);
|
||||
@@ -36,7 +30,6 @@ TEST(SESS_MGR_TCP_REASSEMBLY, OUT_OF_ORDER)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
@@ -228,7 +221,6 @@ TEST(SESS_MGR_TCP_REASSEMBLY, SEQ_WRAPAROUND)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
|
||||
@@ -8,12 +8,6 @@
|
||||
#include "default_config.h"
|
||||
#include "test_packets.h"
|
||||
|
||||
static uint64_t session_id_generator(uint64_t now_ms __attribute__((unused)))
|
||||
{
|
||||
static uint64_t count = 0;
|
||||
return (++count);
|
||||
}
|
||||
|
||||
static void build_active_tcp_session(struct session_manager *mgr, struct session *sess)
|
||||
{
|
||||
struct packet pkt;
|
||||
@@ -58,7 +52,6 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_FIN_FIN)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet & C2S DATA Packet
|
||||
build_active_tcp_session(mgr, sess);
|
||||
@@ -150,7 +143,6 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_C2S_RST)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet & C2S DATA Packet
|
||||
build_active_tcp_session(mgr, sess);
|
||||
@@ -236,7 +228,6 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_S2C_RST)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet & C2S DATA Packet
|
||||
build_active_tcp_session(mgr, sess);
|
||||
@@ -320,7 +311,6 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_DATA_TIMEOUT)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet & C2S DATA Packet
|
||||
build_active_tcp_session(mgr, sess);
|
||||
@@ -370,7 +360,6 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_C2S_HALF_CLOSED_TIMEOUT)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet & C2S DATA Packet
|
||||
build_active_tcp_session(mgr, sess);
|
||||
@@ -450,7 +439,6 @@ TEST(TCP_ACTIVE_TO_CLOSING, BY_S2C_HALF_CLOSED_TIMEOUT)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet & C2S DATA Packet
|
||||
build_active_tcp_session(mgr, sess);
|
||||
|
||||
@@ -8,12 +8,6 @@
|
||||
#include "default_config.h"
|
||||
#include "test_packets.h"
|
||||
|
||||
static uint64_t session_id_generator(uint64_t now_ms __attribute__((unused)))
|
||||
{
|
||||
static uint64_t count = 0;
|
||||
return (++count);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* case: TCP init -> opening (by SYN)
|
||||
******************************************************************************/
|
||||
@@ -29,7 +23,6 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
@@ -107,7 +100,6 @@ TEST(TCP_INIT_TO_OPENING, BY_SYNACK)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// S2C SYNACK Packet
|
||||
printf("\n=> Packet Parse: TCP S2C SYNACK packet\n");
|
||||
@@ -185,7 +177,6 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN_SYNACK)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
@@ -275,7 +266,6 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN_SYNACK_ACK)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
@@ -379,7 +369,6 @@ TEST(TCP_INIT_TO_OPENING, BY_SYN_RETRANSMISSION)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
@@ -476,7 +465,6 @@ TEST(TCP_INIT_TO_OPENING, BY_SYNACK_RETRANSMISSION)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// S2C SYNACK Packet
|
||||
printf("\n=> Packet Parse: TCP S2C SYNACK packet\n");
|
||||
@@ -572,7 +560,6 @@ TEST(TCP_INIT_TO_OPENING, BY_C2S_ASMMETRIC)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
@@ -662,7 +649,6 @@ TEST(TCP_INIT_TO_OPENING, BY_S2C_ASMMETRIC)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// S2C SYNACK Packet
|
||||
printf("\n=> Packet Parse: TCP S2C SYNACK packet\n");
|
||||
|
||||
@@ -8,12 +8,6 @@
|
||||
#include "default_config.h"
|
||||
#include "test_packets.h"
|
||||
|
||||
static uint64_t session_id_generator(uint64_t now_ms __attribute__((unused)))
|
||||
{
|
||||
static uint64_t count = 0;
|
||||
return (++count);
|
||||
}
|
||||
|
||||
#if 1
|
||||
TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST)
|
||||
{
|
||||
@@ -25,7 +19,6 @@ TEST(TCP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING_TO_CLOSED, TEST)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
|
||||
@@ -8,12 +8,6 @@
|
||||
#include "default_config.h"
|
||||
#include "test_packets.h"
|
||||
|
||||
static uint64_t session_id_generator(uint64_t now_ms __attribute__((unused)))
|
||||
{
|
||||
static uint64_t count = 0;
|
||||
return (++count);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* case: TCP opening -> active (by C2S DATA)
|
||||
******************************************************************************/
|
||||
@@ -29,7 +23,6 @@ TEST(TCP_OPENING_TO_ACTIVE, BY_SYN_C2S_DATA)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
@@ -119,7 +112,6 @@ TEST(TCP_OPENING_TO_ACTIVE, BY_SYNACK_S2C_DATA)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// S2C SYNACK Packet
|
||||
printf("\n=> Packet Parse: TCP S2C SYNACK packet\n");
|
||||
|
||||
@@ -8,12 +8,6 @@
|
||||
#include "default_config.h"
|
||||
#include "test_packets.h"
|
||||
|
||||
static uint64_t session_id_generator(uint64_t now_ms __attribute__((unused)))
|
||||
{
|
||||
static uint64_t count = 0;
|
||||
return (++count);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* case: TCP opening -> closing (by FIN-FIN)
|
||||
******************************************************************************/
|
||||
@@ -29,7 +23,6 @@ TEST(TCP_OPENING_TO_CLOSING, BY_FIN_FIN)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
@@ -130,7 +123,6 @@ TEST(TCP_OPENING_TO_CLOSING, BY_C2S_RST)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
@@ -225,7 +217,6 @@ TEST(TCP_OPENING_TO_CLOSING, BY_S2C_RST)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
@@ -319,7 +310,6 @@ TEST(TCP_OPENING_TO_CLOSING, BY_INIT_TIMEOUT)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
@@ -378,7 +368,6 @@ TEST(TCP_OPENING_TO_CLOSING, BY_HANDSHAKE_TIMEOUT)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
@@ -468,7 +457,6 @@ TEST(TCP_OPENING_TO_CLOSING, BY_DATA_TIMEOUT)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
@@ -570,7 +558,6 @@ TEST(TCP_OPENING_TO_CLOSING, BY_C2S_HALF_FIN)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
@@ -659,7 +646,6 @@ TEST(TCP_OPENING_TO_CLOSING, BY_S2C_HALF_FIN)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
|
||||
@@ -8,12 +8,6 @@
|
||||
#include "default_config.h"
|
||||
#include "test_packets.h"
|
||||
|
||||
static uint64_t session_id_generator(uint64_t now_ms __attribute__((unused)))
|
||||
{
|
||||
static uint64_t count = 0;
|
||||
return (++count);
|
||||
}
|
||||
|
||||
#if 1
|
||||
TEST(UDP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING, TEST)
|
||||
{
|
||||
@@ -25,7 +19,6 @@ TEST(UDP_INIT_TO_OPENING_TO_ACTIVE_TO_CLOSING, TEST)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S REQ Packet
|
||||
printf("\n=> Packet Parse: UDP C2S REQ packet\n");
|
||||
|
||||
@@ -8,12 +8,6 @@
|
||||
#include "default_config.h"
|
||||
#include "test_packets.h"
|
||||
|
||||
static uint64_t session_id_generator(uint64_t now_ms __attribute__((unused)))
|
||||
{
|
||||
static uint64_t count = 0;
|
||||
return (++count);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* case: UDP init -> opening (by C2S Packet)
|
||||
* case: UDP opening -> closing (by timeout)
|
||||
@@ -30,7 +24,6 @@ TEST(UDP_INIT_TO_OPENING_TO_CLOSING, BY_C2S)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S REQ Packet
|
||||
printf("\n=> Packet Parse: UDP C2S REQ packet\n");
|
||||
@@ -109,7 +102,6 @@ TEST(UDP_INIT_TO_OPENING_TO_CLOSING, BY_S2C)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// S2C RESP Packet
|
||||
printf("\n=> Packet Parse: UDP S2C RESP packet\n");
|
||||
|
||||
@@ -7,12 +7,6 @@
|
||||
#include "default_config.h"
|
||||
#include "test_packets.h"
|
||||
|
||||
static uint64_t session_id_generator(uint64_t now_ms __attribute__((unused)))
|
||||
{
|
||||
static uint64_t count = 0;
|
||||
return (++count);
|
||||
}
|
||||
|
||||
#if 1
|
||||
TEST(TIMEOUT, TCP_TIMEOUT_DATA)
|
||||
{
|
||||
@@ -22,7 +16,6 @@ TEST(TIMEOUT, TCP_TIMEOUT_DATA)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
|
||||
@@ -7,12 +7,6 @@
|
||||
#include "default_config.h"
|
||||
#include "test_packets.h"
|
||||
|
||||
static uint64_t session_id_generator(uint64_t now_ms __attribute__((unused)))
|
||||
{
|
||||
static uint64_t count = 0;
|
||||
return (++count);
|
||||
}
|
||||
|
||||
#if 1
|
||||
TEST(TIMEOUT, TCP_TIMEOUT_HANDSHAKE)
|
||||
{
|
||||
@@ -22,7 +16,6 @@ TEST(TIMEOUT, TCP_TIMEOUT_HANDSHAKE)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// S2C SYNACK Packet
|
||||
printf("\n=> Packet Parse: TCP S2C SYNACK packet\n");
|
||||
|
||||
@@ -7,12 +7,6 @@
|
||||
#include "default_config.h"
|
||||
#include "test_packets.h"
|
||||
|
||||
static uint64_t session_id_generator(uint64_t now_ms __attribute__((unused)))
|
||||
{
|
||||
static uint64_t count = 0;
|
||||
return (++count);
|
||||
}
|
||||
|
||||
#if 1
|
||||
TEST(TIMEOUT, TCP_TIMEOUT_INIT)
|
||||
{
|
||||
@@ -22,7 +16,6 @@ TEST(TIMEOUT, TCP_TIMEOUT_INIT)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S SYN Packet
|
||||
printf("\n=> Packet Parse: TCP C2S SYN packet\n");
|
||||
|
||||
@@ -7,12 +7,6 @@
|
||||
#include "default_config.h"
|
||||
#include "test_packets.h"
|
||||
|
||||
static uint64_t session_id_generator(uint64_t now_ms __attribute__((unused)))
|
||||
{
|
||||
static uint64_t count = 0;
|
||||
return (++count);
|
||||
}
|
||||
|
||||
#if 1
|
||||
TEST(TIMEOUT, UDP_TIMEOUT_DATA1)
|
||||
{
|
||||
@@ -22,7 +16,6 @@ TEST(TIMEOUT, UDP_TIMEOUT_DATA1)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S REQ Packet
|
||||
printf("\n=> Packet Parse: UDP C2S REQ packet\n");
|
||||
@@ -59,7 +52,6 @@ TEST(TIMEOUT, UDP_TIMEOUT_DATA2)
|
||||
|
||||
mgr = session_manager_new(&cfg, 1);
|
||||
EXPECT_TRUE(mgr != NULL);
|
||||
session_manager_set_session_id_generator(mgr, session_id_generator);
|
||||
|
||||
// C2S REQ Packet
|
||||
printf("\n=> Packet Parse: UDP C2S REQ packet\n");
|
||||
|
||||
37
infra/session_manager/test/session_id_decoder.cpp
Normal file
37
infra/session_manager/test/session_id_decoder.cpp
Normal file
@@ -0,0 +1,37 @@
|
||||
#include <time.h>
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
if (argc != 2)
|
||||
{
|
||||
printf("Usage: %s <id>\n", argv[0]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
uint64_t id = atoll(argv[1]);
|
||||
|
||||
uint64_t sequence = id & 0x7FFF;
|
||||
uint64_t time_relative = (id >> 15) & 0xFFFFFFF;
|
||||
uint64_t seed = (id >> 43) & 0xFFFFF;
|
||||
|
||||
uint64_t thread_id = seed & 0xFF;
|
||||
uint64_t instance_id = (seed >> 8) & 0xFFF;
|
||||
|
||||
printf("id: %lu, seed: %lu, instance_id: %lu, thread_id: %lu, time_relative: %lu, sequence: %lu\n", id, seed, instance_id, thread_id, time_relative, sequence);
|
||||
|
||||
#define MAX_ID_BASE_TIME (268435456L)
|
||||
|
||||
for (int i = 6; i < 10; i++)
|
||||
{
|
||||
char buff[64];
|
||||
time_t tt = MAX_ID_BASE_TIME * i + time_relative;
|
||||
struct tm *tm = localtime(&tt);
|
||||
strftime(buff, sizeof(buff), "%Y-%m-%d %H:%M:%S", tm);
|
||||
printf("\ttime_period * %d + time_relative => %s\n", i, buff);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user