diff options
| author | luwenpeng <[email protected]> | 2023-04-07 14:09:20 +0800 |
|---|---|---|
| committer | luwenpeng <[email protected]> | 2023-04-07 16:12:10 +0800 |
| commit | 7215e0b5451aec2882438b96b8e2e40f9675dc2d (patch) | |
| tree | 7fb3218eb1c6c7cfe8fd21ed6dd356ea1c2e10f6 /common | |
| parent | 0f45abedc8576ed603fba15ceb6afe8bc211258f (diff) | |
TSG-14568 tsg-service-chaining-engine支持MAAT4
Diffstat (limited to 'common')
| -rw-r--r-- | common/include/ctrl_packet.h | 4 | ||||
| -rw-r--r-- | common/include/utils.h | 13 | ||||
| -rw-r--r-- | common/src/ctrl_packet.cpp | 12 | ||||
| -rw-r--r-- | common/src/utils.cpp | 6 | ||||
| -rw-r--r-- | common/test/gtest_ctrl_packet.cpp | 8 |
5 files changed, 23 insertions, 20 deletions
diff --git a/common/include/ctrl_packet.h b/common/include/ctrl_packet.h index 7ffe43e..3203438 100644 --- a/common/include/ctrl_packet.h +++ b/common/include/ctrl_packet.h @@ -22,8 +22,8 @@ struct ctrl_pkt_parser uint64_t session_id; enum session_state state; char method[32]; - int policy_ids[32]; - int policy_id_num; + uint64_t rule_ids[32]; + int rule_id_num; }; const char *session_state_to_string(enum session_state state); diff --git a/common/include/utils.h b/common/include/utils.h index 4018db0..f5097d9 100644 --- a/common/include/utils.h +++ b/common/include/utils.h @@ -31,26 +31,29 @@ extern "C" * fixed_num_array ******************************************************************************/ +#include <stdint.h> + struct fixed_num_array { - int elems[128]; + uint64_t elems[128]; int num; int size; }; void fixed_num_array_init(struct fixed_num_array *array); -void fixed_num_array_add_elem(struct fixed_num_array *array, int elem); -void fixed_num_array_del_elem(struct fixed_num_array *array, int elem); +void fixed_num_array_add_elem(struct fixed_num_array *array, uint64_t elem); +void fixed_num_array_del_elem(struct fixed_num_array *array, uint64_t elem); int fixed_num_array_is_full(struct fixed_num_array *array); int fixed_num_array_count_elem(struct fixed_num_array *array); -int fixed_num_array_exist_elem(struct fixed_num_array *array, int elem); +int fixed_num_array_exist_elem(struct fixed_num_array *array, uint64_t elem); int fixed_num_array_index_elem(struct fixed_num_array *array, int index); /****************************************************************************** * sids ******************************************************************************/ -#include <marsio.h> +typedef uint16_t sid_t; +#define MR_SID_LIST_MAXLEN 8 struct sids { diff --git a/common/src/ctrl_packet.cpp b/common/src/ctrl_packet.cpp index cf201e6..0f0ea45 100644 --- a/common/src/ctrl_packet.cpp +++ b/common/src/ctrl_packet.cpp @@ -126,7 +126,7 @@ int ctrl_packet_parser_parse(struct ctrl_pkt_parser *handler, const char *data, goto error_out; } - handler->policy_id_num = MIN(cJSON_GetArraySize(item), (int)(sizeof(handler->policy_ids) / sizeof(handler->policy_ids[0]))); + handler->rule_id_num = MIN(cJSON_GetArraySize(item), (int)(sizeof(handler->rule_ids) / sizeof(handler->rule_ids[0]))); cJSON_ArrayForEach(elem, item) { if (!cJSON_IsNumber(elem)) @@ -134,10 +134,10 @@ int ctrl_packet_parser_parse(struct ctrl_pkt_parser *handler, const char *data, LOG_ERROR("%s: unexpected control packet: (invalid service_chaining value) %s", LOG_TAG_POLICY, data); continue; } - handler->policy_ids[iter] = elem->valueint; + handler->rule_ids[iter] = elem->valueint; iter++; - if (iter == handler->policy_id_num) + if (iter == handler->rule_id_num) { break; } @@ -160,11 +160,11 @@ void ctrl_packet_parser_dump(struct ctrl_pkt_parser *handler) LOG_INFO("%s: session_id : %lu", LOG_TAG_POLICY, handler->session_id); LOG_INFO("%s: state : %s", LOG_TAG_POLICY, session_state_to_string(handler->state)); LOG_INFO("%s: method : %s", LOG_TAG_POLICY, handler->method); - LOG_INFO("%s: policy_id_num : %d", LOG_TAG_POLICY, handler->policy_id_num); + LOG_INFO("%s: rule_id_num : %d", LOG_TAG_POLICY, handler->rule_id_num); - for (int i = 0; i < handler->policy_id_num; i++) + for (int i = 0; i < handler->rule_id_num; i++) { - LOG_INFO("%s: policy_ids[%03d] : %i", LOG_TAG_POLICY, i, handler->policy_ids[i]); + LOG_INFO("%s: rule_ids[%03d] : %lu", LOG_TAG_POLICY, i, handler->rule_ids[i]); } } } diff --git a/common/src/utils.cpp b/common/src/utils.cpp index 6f8e1f5..314cf45 100644 --- a/common/src/utils.cpp +++ b/common/src/utils.cpp @@ -22,7 +22,7 @@ void fixed_num_array_init(struct fixed_num_array *array) array->size = sizeof(array->elems) / sizeof(array->elems[0]); } -void fixed_num_array_add_elem(struct fixed_num_array *array, int elem) +void fixed_num_array_add_elem(struct fixed_num_array *array, uint64_t elem) { if (array->num < array->size) { @@ -35,7 +35,7 @@ void fixed_num_array_add_elem(struct fixed_num_array *array, int elem) } } -void fixed_num_array_del_elem(struct fixed_num_array *array, int elem) +void fixed_num_array_del_elem(struct fixed_num_array *array, uint64_t elem) { for (int i = 0; i < array->num; i++) { @@ -75,7 +75,7 @@ int fixed_num_array_count_elem(struct fixed_num_array *array) } } -int fixed_num_array_exist_elem(struct fixed_num_array *array, int elem) +int fixed_num_array_exist_elem(struct fixed_num_array *array, uint64_t elem) { for (int i = 0; i < array->num; i++) { diff --git a/common/test/gtest_ctrl_packet.cpp b/common/test/gtest_ctrl_packet.cpp index 2af2f7b..2e6f0b7 100644 --- a/common/test/gtest_ctrl_packet.cpp +++ b/common/test/gtest_ctrl_packet.cpp @@ -16,10 +16,10 @@ TEST(CTRL_PACKET, PARSE) EXPECT_TRUE(parser.session_id == 123456789); EXPECT_TRUE(parser.state == SESSION_STATE_ACTIVE); EXPECT_STREQ(parser.method, "policy_update"); - EXPECT_TRUE(parser.policy_id_num == 3); - EXPECT_TRUE(parser.policy_ids[0] == 1); - EXPECT_TRUE(parser.policy_ids[1] == 2); - EXPECT_TRUE(parser.policy_ids[2] == 3); + EXPECT_TRUE(parser.rule_id_num == 3); + EXPECT_TRUE(parser.rule_ids[0] == 1); + EXPECT_TRUE(parser.rule_ids[1] == 2); + EXPECT_TRUE(parser.rule_ids[2] == 3); } int main(int argc, char **argv) |
