summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
author刘畅 <[email protected]>2024-10-18 01:54:04 +0000
committer刘畅 <[email protected]>2024-10-18 01:54:04 +0000
commitef65ec1447d900f105c93b86ac55339d83d987f6 (patch)
tree13e5e2e2134a35a5b2b95d54b2bdbe40f991d11a /common
parentb0de64f0deb1672f0b183f72b99d615f00a73b3b (diff)
parent6e63a4b7edce57ecd5f5186c209320efd3efe074 (diff)
Merge branch 'adapt_rule_with_uuid' into 'rel'v3.2.1v3.2.0
Adapt rule with uuid See merge request tango/shaping-engine!104
Diffstat (limited to 'common')
-rw-r--r--common/CMakeLists.txt2
-rw-r--r--common/include/utils.h6
-rw-r--r--common/src/utils.cpp7
-rw-r--r--common/test/gtest_ctrl_packet.cpp21
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);