diff options
| author | 刘畅 <[email protected]> | 2024-10-18 01:54:04 +0000 |
|---|---|---|
| committer | 刘畅 <[email protected]> | 2024-10-18 01:54:04 +0000 |
| commit | ef65ec1447d900f105c93b86ac55339d83d987f6 (patch) | |
| tree | 13e5e2e2134a35a5b2b95d54b2bdbe40f991d11a /common | |
| parent | b0de64f0deb1672f0b183f72b99d615f00a73b3b (diff) | |
| parent | 6e63a4b7edce57ecd5f5186c209320efd3efe074 (diff) | |
Adapt rule with uuid
See merge request tango/shaping-engine!104
Diffstat (limited to 'common')
| -rw-r--r-- | common/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | common/include/utils.h | 6 | ||||
| -rw-r--r-- | common/src/utils.cpp | 7 | ||||
| -rw-r--r-- | common/test/gtest_ctrl_packet.cpp | 21 |
4 files changed, 29 insertions, 7 deletions
diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 622884b..bbb5a46 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -1,6 +1,6 @@ add_library(common src/log.cpp src/session_table.cpp src/utils.cpp src/addr_tuple4.cpp src/raw_packet.cpp src/mpack.c) -target_link_libraries(common PUBLIC MESA_handle_logger) +target_link_libraries(common PUBLIC MESA_handle_logger uuid) target_link_libraries(common PUBLIC mrzcpd) target_include_directories(common PUBLIC ${CMAKE_CURRENT_LIST_DIR}/include) diff --git a/common/include/utils.h b/common/include/utils.h index 38ad5d3..3f880f9 100644 --- a/common/include/utils.h +++ b/common/include/utils.h @@ -1,5 +1,6 @@ #ifndef _UTILS_H #define _UTILS_H +#include <uuid/uuid.h> #ifdef __cpluscplus extern "C" @@ -112,6 +113,11 @@ int get_ip_by_device_name(const char *dev_name, char *ip_buff); int get_mac_by_device_name(const char *dev_name, char *mac_buff); int str_to_mac(const char *str, char *mac_buff); +/****************************************************************************** + * uuid + ******************************************************************************/ +const char *uuid_print_str(uuid_t uuid); + #ifdef __cpluscplus } #endif diff --git a/common/src/utils.cpp b/common/src/utils.cpp index ecd856f..bbf0dca 100644 --- a/common/src/utils.cpp +++ b/common/src/utils.cpp @@ -292,3 +292,10 @@ int str_to_mac(const char *str, char *mac_buff) return -1; } } + +const char *uuid_print_str(uuid_t uuid) +{ + static thread_local char uuid_str[UUID_STR_LEN] = {0}; + uuid_unparse(uuid, uuid_str); + return uuid_str; +}
\ No newline at end of file diff --git a/common/test/gtest_ctrl_packet.cpp b/common/test/gtest_ctrl_packet.cpp index bb16363..7423baa 100644 --- a/common/test/gtest_ctrl_packet.cpp +++ b/common/test/gtest_ctrl_packet.cpp @@ -3,7 +3,7 @@ #include "shaper_marsio.h" -static int construct_shaping_cmsg(const char *tsync, unsigned long long session_id, const char *state, long long *shaping_rule_ids, int shaping_rule_id_num, char **mpack_data, size_t *mpack_size) +static int construct_shaping_cmsg(const char *tsync, unsigned long long session_id, const char *state, uuid_t *shaping_rule_ids, int shaping_rule_id_num, char **mpack_data, size_t *mpack_size) { mpack_writer_t writer; @@ -34,7 +34,7 @@ static int construct_shaping_cmsg(const char *tsync, unsigned long long session_ mpack_write_cstr(&writer, "rule_ids"); mpack_build_array(&writer); for (int i = 0; i < shaping_rule_id_num; i++) { - mpack_write_i64(&writer, shaping_rule_ids[i]); + mpack_write_bin(&writer, (char*)shaping_rule_ids[i], sizeof(uuid_t)); } mpack_complete_array(&writer);//build array rule_ids mpack_complete_map(&writer);//build map shaper @@ -52,10 +52,14 @@ TEST(CTRL_PACKET, PARSE) const char *tsync = "2.0"; unsigned long long session_id = 123456789; const char *state = "active"; - long long shaping_rule_ids[] = {4, 5, 6}; + uuid_t shaping_rule_ids[3]; char *mpack_data = NULL; size_t mpack_size = 0; + uuid_parse("00000000-0000-0000-0000-000000000001", shaping_rule_ids[0]); + uuid_parse("00000000-0000-0000-0000-000000000002", shaping_rule_ids[1]); + uuid_parse("00000000-0000-0000-0000-000000000003", shaping_rule_ids[2]); + construct_shaping_cmsg(tsync, session_id, state, shaping_rule_ids, 3, &mpack_data, &mpack_size); struct ctrl_pkt_data ctrl_data; @@ -65,9 +69,14 @@ TEST(CTRL_PACKET, PARSE) EXPECT_EQ(ctrl_data.session_id, 123456789); EXPECT_EQ(ctrl_data.state, SESSION_STATE_ACTIVE); EXPECT_EQ(ctrl_data.shaping_rule_num, 3); - EXPECT_EQ(ctrl_data.shaping_rule_ids[0], 4); - EXPECT_EQ(ctrl_data.shaping_rule_ids[1], 5); - EXPECT_EQ(ctrl_data.shaping_rule_ids[2], 6); + + char uuid_str[UUID_STR_LEN]; + uuid_unparse(ctrl_data.shaping_rule_uuids[0], uuid_str); + EXPECT_STREQ(uuid_str, "00000000-0000-0000-0000-000000000001"); + uuid_unparse(ctrl_data.shaping_rule_uuids[1], uuid_str); + EXPECT_STREQ(uuid_str, "00000000-0000-0000-0000-000000000002"); + uuid_unparse(ctrl_data.shaping_rule_uuids[2], uuid_str); + EXPECT_STREQ(uuid_str, "00000000-0000-0000-0000-000000000003"); if (mpack_data) { free(mpack_data); |
