diff --git a/src/core/stellar_core.cpp b/src/core/stellar_core.cpp index 1252106..eef53c0 100644 --- a/src/core/stellar_core.cpp +++ b/src/core/stellar_core.cpp @@ -12,7 +12,7 @@ #include "utils.h" #include "packet_io.h" #include "packet_private.h" -#include "session_utils.h" +#include "session_private.h" #include "snowflake.h" #include "stellar_stat.h" #include "stellar_core.h" diff --git a/src/plugin/CMakeLists.txt b/src/plugin/CMakeLists.txt index 3c08c28..d72da69 100644 --- a/src/plugin/CMakeLists.txt +++ b/src/plugin/CMakeLists.txt @@ -3,6 +3,6 @@ target_include_directories(plugin_manager PUBLIC ${CMAKE_CURRENT_LIST_DIR}) target_include_directories(plugin_manager PUBLIC ${CMAKE_SOURCE_DIR}/include/) target_include_directories(plugin_manager PUBLIC ${CMAKE_SOURCE_DIR}/src/) target_include_directories(plugin_manager PUBLIC ${CMAKE_SOURCE_DIR}/deps/) -target_link_libraries(plugin_manager bitmap toml ${CMAKE_DL_LIBS}) +target_link_libraries(plugin_manager session_manager bitmap toml ${CMAKE_DL_LIBS}) add_subdirectory(test) \ No newline at end of file diff --git a/src/plugin/plugin_manager.cpp b/src/plugin/plugin_manager.cpp index 42d1cc9..d3527a7 100644 --- a/src/plugin/plugin_manager.cpp +++ b/src/plugin/plugin_manager.cpp @@ -5,9 +5,9 @@ #include "uthash/utlist.h" #include "core/stellar_core.h" -#include "session/session_utils.h" #include "tuple/tuple.h" #include "packet/packet_private.h" +#include "session/session_private.h" UT_icd plugin_specs_icd = {sizeof(struct plugin_specific), NULL, NULL, NULL}; diff --git a/src/session/CMakeLists.txt b/src/session/CMakeLists.txt index 3f0f5db..5a5e1df 100644 --- a/src/session/CMakeLists.txt +++ b/src/session/CMakeLists.txt @@ -1,5 +1,5 @@ add_library(session_manager - session_utils.cpp + session.cpp session_pool.cpp session_table.cpp session_timer.cpp diff --git a/src/session/session_utils.cpp b/src/session/session.cpp similarity index 97% rename from src/session/session_utils.cpp rename to src/session/session.cpp index 1a4963a..335f7f3 100644 --- a/src/session/session_utils.cpp +++ b/src/session/session.cpp @@ -1,13 +1,6 @@ -#include - #include "session_private.h" -#include "session_utils.h" #include "session_manager.h" -/****************************************************************************** - * session set/get - ******************************************************************************/ - void session_init(struct session *sess) { memset(sess, 0, sizeof(struct session)); @@ -257,10 +250,6 @@ void session_free_tcp_segment(struct session *sess, struct tcp_segment *seg) } } -/****************************************************************************** - * to string - ******************************************************************************/ - const char *closing_reason_to_str(enum closing_reason reason) { switch (reason) @@ -462,4 +451,11 @@ int session_to_str(const struct session *sess, int bref, char *buff, int size) } return used; -} \ No newline at end of file +} + +void session_print(const struct session *sess) +{ + char buff[4096]; + session_to_str(sess, 0, buff, sizeof(buff)); + printf("%s\n", buff); +} diff --git a/src/session/session_manager.cpp b/src/session/session_manager.cpp index 0c780be..b80ba76 100644 --- a/src/session/session_manager.cpp +++ b/src/session/session_manager.cpp @@ -8,7 +8,6 @@ #include "packet_filter.h" #include "snowflake.h" #include "session_private.h" -#include "session_utils.h" #include "session_pool.h" #include "session_table.h" #include "session_timer.h" diff --git a/src/session/session_manager.h b/src/session/session_manager.h index 580dda3..ea8509e 100644 --- a/src/session/session_manager.h +++ b/src/session/session_manager.h @@ -6,7 +6,7 @@ extern "C" #endif #include "tuple.h" -#include "session_private.h" +#include "stellar/session.h" struct session_manager_options { diff --git a/src/session/session_private.h b/src/session/session_private.h index c4f0871..c7456aa 100644 --- a/src/session/session_private.h +++ b/src/session/session_private.h @@ -75,6 +75,75 @@ struct session struct session_manager_stat *mgr_stat; }; +void session_init(struct session *sess); + +void session_set_id(struct session *sess, uint64_t id); +// uint64_t session_get_id(const struct session *sess); + +void session_set_tuple6(struct session *sess, const struct tuple6 *tuple); +const struct tuple6 *session_get_tuple6(const struct session *sess); +// const char *session_get0_readable_addr(const struct session *sess); + +void session_set_direction(struct session *sess, enum session_direction dir); +enum session_direction session_get_direction(const struct session *sess); + +void session_set_current_flow_direction(struct session *sess, enum flow_direction dir); +// enum flow_direction session_get_current_flow_direction(const struct session *sess); + +void session_set_current_state(struct session *sess, enum session_state state); +// enum session_state session_get_current_state(const struct session *sess); + +void session_set_type(struct session *sess, enum session_type type); +// enum session_type session_get_type(const struct session *sess); + +void session_set_duplicate_traffic(struct session *sess); +// int session_has_duplicate_traffic(const struct session *sess); + +void session_set_closing_reason(struct session *sess, enum closing_reason reason); +// enum closing_reason session_get_closing_reason(const struct session *sess); + +void session_inc_stat(struct session *sess, enum flow_direction dir, enum session_stat stat, uint64_t val); +// uint64_t session_get_stat(const struct session *sess, enum flow_direction dir, enum session_stat stat); + +void session_set_timestamp(struct session *sess, enum session_timestamp type, uint64_t value); +// uint64_t session_get_timestamp(const struct session *sess, enum session_timestamp type); + +void session_clear_sids(struct session *sess, enum flow_direction dir); +void session_set_sids(struct session *sess, enum flow_direction dir, const struct sids *sids); +const struct sids *session_get_sids(const struct session *sess, enum flow_direction dir); + +void session_clear_route_ctx(struct session *sess, enum flow_direction dir); +void session_set_route_ctx(struct session *sess, enum flow_direction dir, const struct route_ctx *ctx); +const struct route_ctx *session_get_route_ctx(const struct session *sess, enum flow_direction dir); + +void session_set_first_packet(struct session *sess, enum flow_direction dir, const struct packet *pkt); +// const struct packet *session_get_first_packet(const struct session *sess, enum flow_direction dir); + +void session_set_current_packet(struct session *sess, const struct packet *pkt); +// const struct packet *session_get0_current_packet(const struct session *sess); + +// int session_is_symmetric(const struct session *sess, unsigned char *flag); + +void session_set_user_data(struct session *sess, void *user_data); +void *session_get_user_data(const struct session *sess); + +struct tcp_segment *session_get_tcp_segment(struct session *sess); +void session_free_tcp_segment(struct session *sess, struct tcp_segment *seg); + +/****************************************************************************** + * to string + ******************************************************************************/ + +const char *closing_reason_to_str(enum closing_reason reason); +const char *session_state_to_str(enum session_state state); +const char *session_type_to_str(enum session_type type); +const char *flow_direction_to_str(enum flow_direction dir); + +// bref : 1, output session bref info +// bref : 0, output session detail info +int session_to_str(const struct session *sess, int bref, char *buff, int size); +void session_print(const struct session *sess); + #ifdef __cplusplus } #endif diff --git a/src/session/session_transition.cpp b/src/session/session_transition.cpp index cd439eb..256d61a 100644 --- a/src/session/session_transition.cpp +++ b/src/session/session_transition.cpp @@ -2,7 +2,7 @@ #include #include "log.h" -#include "session_utils.h" +#include "session_private.h" #include "session_transition.h" #define SESSION_TRANSITION_LOG_INFO(format, ...) LOG_INFO("session transition", format, ##__VA_ARGS__) diff --git a/src/session/session_utils.h b/src/session/session_utils.h deleted file mode 100644 index e4222c0..0000000 --- a/src/session/session_utils.h +++ /dev/null @@ -1,113 +0,0 @@ -#pragma once - -#ifdef __cplusplus -extern "C" -{ -#endif - -#include -#include - -#include "stellar/session.h" - -/****************************************************************************** - * session set/get - ******************************************************************************/ - -void session_init(struct session *sess); - -// session ID -void session_set_id(struct session *sess, uint64_t id); -uint64_t session_get_id(const struct session *sess); - -// session tuple -void session_set_tuple6(struct session *sess, const struct tuple6 *tuple); -const struct tuple6 *session_get_tuple6(const struct session *sess); - -// session tuple direction -const char *session_get0_readable_addr(const struct session *sess); - -// session direction -void session_set_direction(struct session *sess, enum session_direction dir); -enum session_direction session_get_direction(const struct session *sess); - -// session flow direction -void session_set_current_flow_direction(struct session *sess, enum flow_direction dir); -enum flow_direction session_get_current_flow_direction(const struct session *sess); - -// session state -void session_set_current_state(struct session *sess, enum session_state state); -enum session_state session_get_current_state(const struct session *sess); - -// session type -void session_set_type(struct session *sess, enum session_type type); -enum session_type session_get_type(const struct session *sess); - -// session seen duplicate traffic -void session_set_duplicate_traffic(struct session *sess); -int session_has_duplicate_traffic(const struct session *sess); - -// session closing reason -void session_set_closing_reason(struct session *sess, enum closing_reason reason); -enum closing_reason session_get_closing_reason(const struct session *sess); - -// session stat -void session_inc_stat(struct session *sess, enum flow_direction dir, enum session_stat stat, uint64_t val); -uint64_t session_get_stat(const struct session *sess, enum flow_direction dir, enum session_stat stat); - -// session timestamp -void session_set_timestamp(struct session *sess, enum session_timestamp type, uint64_t value); -uint64_t session_get_timestamp(const struct session *sess, enum session_timestamp type); - -// session sids -void session_clear_sids(struct session *sess, enum flow_direction dir); -void session_set_sids(struct session *sess, enum flow_direction dir, const struct sids *sids); -const struct sids *session_get_sids(const struct session *sess, enum flow_direction dir); - -// session route ctx -void session_clear_route_ctx(struct session *sess, enum flow_direction dir); -void session_set_route_ctx(struct session *sess, enum flow_direction dir, const struct route_ctx *ctx); -const struct route_ctx *session_get_route_ctx(const struct session *sess, enum flow_direction dir); - -// session first packet -void session_set_first_packet(struct session *sess, enum flow_direction dir, const struct packet *pkt); -const struct packet *session_get_first_packet(const struct session *sess, enum flow_direction dir); - -// session current packet -void session_set_current_packet(struct session *sess, const struct packet *pkt); -const struct packet *session_get0_current_packet(const struct session *sess); - -// session symmetric -int session_is_symmetric(const struct session *sess, unsigned char *flag); - -// session user data -void session_set_user_data(struct session *sess, void *user_data); -void *session_get_user_data(const struct session *sess); - -// session tcp segment -struct tcp_segment *session_get_tcp_segment(struct session *sess); -void session_free_tcp_segment(struct session *sess, struct tcp_segment *seg); - -/****************************************************************************** - * to string - ******************************************************************************/ - -const char *closing_reason_to_str(enum closing_reason reason); -const char *session_state_to_str(enum session_state state); -const char *session_type_to_str(enum session_type type); -const char *flow_direction_to_str(enum flow_direction dir); - -// bref : 1, output session bref info -// bref : 0, output session detail info -int session_to_str(const struct session *sess, int bref, char *buff, int size); - -static inline void session_print(const struct session *sess) -{ - char buff[4096]; - session_to_str(sess, 0, buff, sizeof(buff)); - printf("%s\n", buff); -} - -#ifdef __cplusplus -} -#endif diff --git a/src/session/test/gtest_case_tcp_fast_open.cpp b/src/session/test/gtest_case_tcp_fast_open.cpp index d1c0f89..4216655 100644 --- a/src/session/test/gtest_case_tcp_fast_open.cpp +++ b/src/session/test/gtest_case_tcp_fast_open.cpp @@ -4,7 +4,7 @@ #include "packet_private.h" #include "packet_parser.h" #include "snowflake.h" -#include "session_utils.h" +#include "session_private.h" #include "session_manager.h" #include "tcp_reassembly.h" diff --git a/src/session/test/gtest_filter_tcp_dupkt.cpp b/src/session/test/gtest_filter_tcp_dupkt.cpp index f6daaa9..b3e5a8a 100644 --- a/src/session/test/gtest_filter_tcp_dupkt.cpp +++ b/src/session/test/gtest_filter_tcp_dupkt.cpp @@ -3,7 +3,7 @@ #include "packet_helper.h" #include "packet_private.h" #include "packet_parser.h" -#include "session_utils.h" +#include "session_private.h" #include "session_manager.h" #include "test_packets.h" diff --git a/src/session/test/gtest_overload_evict_tcp_sess.cpp b/src/session/test/gtest_overload_evict_tcp_sess.cpp index 5a7fe93..5477bc3 100644 --- a/src/session/test/gtest_overload_evict_tcp_sess.cpp +++ b/src/session/test/gtest_overload_evict_tcp_sess.cpp @@ -4,7 +4,7 @@ #include "packet_helper.h" #include "packet_private.h" #include "packet_parser.h" -#include "session_utils.h" +#include "session_private.h" #include "session_manager.h" #include "test_packets.h" diff --git a/src/session/test/gtest_overload_evict_udp_sess.cpp b/src/session/test/gtest_overload_evict_udp_sess.cpp index 388e424..560d7db 100644 --- a/src/session/test/gtest_overload_evict_udp_sess.cpp +++ b/src/session/test/gtest_overload_evict_udp_sess.cpp @@ -4,7 +4,7 @@ #include "packet_helper.h" #include "packet_private.h" #include "packet_parser.h" -#include "session_utils.h" +#include "session_private.h" #include "session_manager.h" #include "test_packets.h" diff --git a/src/session/test/gtest_sess_mgr_scan.cpp b/src/session/test/gtest_sess_mgr_scan.cpp index 2b7aae0..6e6643c 100644 --- a/src/session/test/gtest_sess_mgr_scan.cpp +++ b/src/session/test/gtest_sess_mgr_scan.cpp @@ -1,7 +1,7 @@ #include #include "snowflake.h" -#include "session_utils.h" +#include "session_private.h" #include "session_manager.h" #include "packet_private.h" #include "packet_parser.h" diff --git a/src/session/test/gtest_sess_mgr_tcp_reassembly.cpp b/src/session/test/gtest_sess_mgr_tcp_reassembly.cpp index 612b2d5..f92a6db 100644 --- a/src/session/test/gtest_sess_mgr_tcp_reassembly.cpp +++ b/src/session/test/gtest_sess_mgr_tcp_reassembly.cpp @@ -3,7 +3,7 @@ #include "packet_helper.h" #include "packet_private.h" #include "packet_parser.h" -#include "session_utils.h" +#include "session_private.h" #include "session_manager.h" #include "tcp_reassembly.h" #include "test_packets.h" diff --git a/src/session/test/gtest_session_table.cpp b/src/session/test/gtest_session_table.cpp index 2a701c1..b99d2aa 100644 --- a/src/session/test/gtest_session_table.cpp +++ b/src/session/test/gtest_session_table.cpp @@ -1,7 +1,7 @@ #include #include "tuple.h" -#include "session_utils.h" +#include "session_private.h" #include "session_pool.h" #include "session_table.h" diff --git a/src/session/test/gtest_session_timer.cpp b/src/session/test/gtest_session_timer.cpp index 7c5ff26..1a21d87 100644 --- a/src/session/test/gtest_session_timer.cpp +++ b/src/session/test/gtest_session_timer.cpp @@ -1,7 +1,6 @@ #include #include "session_private.h" -#include "session_utils.h" #include "session_timer.h" TEST(SESSION_TIMER, EXPIRE) 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 49747c1..dab4d6a 100644 --- a/src/session/test/gtest_state_tcp_active_to_closing.cpp +++ b/src/session/test/gtest_state_tcp_active_to_closing.cpp @@ -6,7 +6,7 @@ #include "packet_private.h" #include "packet_parser.h" #include "snowflake.h" -#include "session_utils.h" +#include "session_private.h" #include "session_manager.h" #include "test_packets.h" 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 8fe3fbe..ec62306 100644 --- a/src/session/test/gtest_state_tcp_init_to_opening.cpp +++ b/src/session/test/gtest_state_tcp_init_to_opening.cpp @@ -6,7 +6,7 @@ #include "packet_private.h" #include "packet_parser.h" #include "snowflake.h" -#include "session_utils.h" +#include "session_private.h" #include "session_manager.h" #include "test_packets.h" 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 1c16735..215cab9 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 @@ -5,7 +5,7 @@ #include "packet_private.h" #include "packet_parser.h" #include "snowflake.h" -#include "session_utils.h" +#include "session_private.h" #include "session_manager.h" #include "test_packets.h" 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 794a74b..f49916a 100644 --- a/src/session/test/gtest_state_tcp_opening_to_active.cpp +++ b/src/session/test/gtest_state_tcp_opening_to_active.cpp @@ -5,7 +5,7 @@ #include "packet_private.h" #include "packet_parser.h" #include "snowflake.h" -#include "session_utils.h" +#include "session_private.h" #include "session_manager.h" #include "test_packets.h" 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 f1041d0..acb431c 100644 --- a/src/session/test/gtest_state_tcp_opening_to_closing.cpp +++ b/src/session/test/gtest_state_tcp_opening_to_closing.cpp @@ -6,7 +6,7 @@ #include "packet_private.h" #include "packet_parser.h" #include "snowflake.h" -#include "session_utils.h" +#include "session_private.h" #include "session_manager.h" #include "test_packets.h" 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 325d548..bc0ec50 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 @@ -5,7 +5,7 @@ #include "packet_private.h" #include "packet_parser.h" #include "snowflake.h" -#include "session_utils.h" +#include "session_private.h" #include "session_manager.h" #include "test_packets.h" 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 14dc8c4..f555137 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 @@ -5,7 +5,7 @@ #include "packet_private.h" #include "packet_parser.h" #include "snowflake.h" -#include "session_utils.h" +#include "session_private.h" #include "session_manager.h" #include "test_packets.h" diff --git a/src/session/test/gtest_timeout_tcp_data.cpp b/src/session/test/gtest_timeout_tcp_data.cpp index 83638b8..6037517 100644 --- a/src/session/test/gtest_timeout_tcp_data.cpp +++ b/src/session/test/gtest_timeout_tcp_data.cpp @@ -3,7 +3,7 @@ #include "tuple.h" #include "packet_private.h" #include "packet_parser.h" -#include "session_utils.h" +#include "session_private.h" #include "session_manager.h" #include "test_packets.h" diff --git a/src/session/test/gtest_timeout_tcp_handshake.cpp b/src/session/test/gtest_timeout_tcp_handshake.cpp index a14cedd..638c53f 100644 --- a/src/session/test/gtest_timeout_tcp_handshake.cpp +++ b/src/session/test/gtest_timeout_tcp_handshake.cpp @@ -3,7 +3,7 @@ #include "tuple.h" #include "packet_private.h" #include "packet_parser.h" -#include "session_utils.h" +#include "session_private.h" #include "session_manager.h" #include "test_packets.h" diff --git a/src/session/test/gtest_timeout_tcp_init.cpp b/src/session/test/gtest_timeout_tcp_init.cpp index d4eb05f..6e12406 100644 --- a/src/session/test/gtest_timeout_tcp_init.cpp +++ b/src/session/test/gtest_timeout_tcp_init.cpp @@ -3,7 +3,7 @@ #include "tuple.h" #include "packet_private.h" #include "packet_parser.h" -#include "session_utils.h" +#include "session_private.h" #include "session_manager.h" #include "test_packets.h" diff --git a/src/session/test/gtest_timeout_udp_data.cpp b/src/session/test/gtest_timeout_udp_data.cpp index 3ce5d1c..d815ffb 100644 --- a/src/session/test/gtest_timeout_udp_data.cpp +++ b/src/session/test/gtest_timeout_udp_data.cpp @@ -3,7 +3,7 @@ #include "tuple.h" #include "packet_private.h" #include "packet_parser.h" -#include "session_utils.h" +#include "session_private.h" #include "session_manager.h" #include "test_packets.h" diff --git a/test/debug_plugin/debug_plugin.cpp b/test/debug_plugin/debug_plugin.cpp index e2954f0..8016b1b 100644 --- a/test/debug_plugin/debug_plugin.cpp +++ b/test/debug_plugin/debug_plugin.cpp @@ -10,8 +10,9 @@ #include #include "utils.h" -#include "session_utils.h" #include "packet_dump.h" +#include "session_private.h" +#include "stellar/session.h" #include "stellar/packet.h" #include "stellar/stellar_mq.h" #include "stellar/stellar_exdata.h"