TSG-14649 tsg-service-chaining-engine适配新的控制报文格式
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
add_library(common src/addr_tuple4.cpp src/session_table.cpp src/raw_packet.cpp src/ctrl_packet.cpp src/bfd.cpp src/utils.cpp src/g_vxlan.cpp src/log.cpp src/timestamp.cpp)
|
||||
add_library(common src/addr_tuple4.cpp src/session_table.cpp src/raw_packet.cpp src/ctrl_packet.cpp src/bfd.cpp src/utils.cpp src/g_vxlan.cpp src/log.cpp src/timestamp.cpp src/mpack.cpp)
|
||||
target_link_libraries(common PUBLIC cjson)
|
||||
target_link_libraries(common PUBLIC MESA_handle_logger)
|
||||
|
||||
|
||||
8207
common/include/mpack.h
Normal file
8207
common/include/mpack.h
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,8 +1,10 @@
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include <cjson/cJSON.h>
|
||||
|
||||
#include "log.h"
|
||||
#include "mpack.h"
|
||||
#include "utils.h"
|
||||
#include "ctrl_packet.h"
|
||||
|
||||
@@ -30,7 +32,151 @@ void ctrl_packet_parser_init(struct ctrl_pkt_parser *handler)
|
||||
|
||||
// return 0 : success
|
||||
// return -1 : error
|
||||
int ctrl_packet_parser_parse(struct ctrl_pkt_parser *handler, const char *data, size_t length)
|
||||
int ctrl_packet_parser_mpack(struct ctrl_pkt_parser *handler, const char *data, size_t length)
|
||||
{
|
||||
mpack_tree_t tree;
|
||||
mpack_node_t root;
|
||||
mpack_node_t temp;
|
||||
mpack_node_t item;
|
||||
mpack_error_t ret;
|
||||
char buffer[16];
|
||||
|
||||
mpack_tree_init_data(&tree, data, length);
|
||||
mpack_tree_parse(&tree);
|
||||
root = mpack_tree_root(&tree);
|
||||
if (mpack_node_is_nil(root))
|
||||
{
|
||||
LOG_ERROR("%s: unexpected control packet: (invalid mpack format)", LOG_TAG_CTRLPKT);
|
||||
goto error_out;
|
||||
}
|
||||
|
||||
// tsync
|
||||
temp = mpack_node_map_cstr(root, "tsync");
|
||||
if (mpack_node_is_nil(temp))
|
||||
{
|
||||
LOG_ERROR("%s: unexpected control packet: (tsync no found)", LOG_TAG_CTRLPKT);
|
||||
goto error_out;
|
||||
}
|
||||
mpack_node_copy_cstr(temp, handler->tsync, sizeof(handler->tsync));
|
||||
if (strcasecmp(handler->tsync, "2.0") != 0)
|
||||
{
|
||||
LOG_ERROR("%s: unexpected control packet: (invalid tsync value) %s", LOG_TAG_CTRLPKT, handler->tsync);
|
||||
goto error_out;
|
||||
}
|
||||
|
||||
// session_id
|
||||
temp = mpack_node_map_cstr(root, "session_id");
|
||||
if (mpack_node_is_nil(temp))
|
||||
{
|
||||
LOG_ERROR("%s: unexpected control packet: (session_id no found)", LOG_TAG_CTRLPKT);
|
||||
goto error_out;
|
||||
}
|
||||
handler->session_id = mpack_node_u64(temp);
|
||||
if (handler->session_id == 0)
|
||||
{
|
||||
LOG_ERROR("%s: unexpected control packet: (invalid session_id value) %lu", LOG_TAG_CTRLPKT, handler->session_id);
|
||||
goto error_out;
|
||||
}
|
||||
|
||||
// state
|
||||
temp = mpack_node_map_cstr(root, "state");
|
||||
if (mpack_node_is_nil(temp))
|
||||
{
|
||||
LOG_ERROR("%s: unexpected control packet: (state no found)", LOG_TAG_CTRLPKT);
|
||||
goto error_out;
|
||||
}
|
||||
mpack_node_copy_cstr(temp, buffer, sizeof(buffer));
|
||||
if (strcasecmp(buffer, "opening") == 0)
|
||||
{
|
||||
handler->state = SESSION_STATE_OPENING;
|
||||
}
|
||||
else if (strcasecmp(buffer, "active") == 0)
|
||||
{
|
||||
handler->state = SESSION_STATE_ACTIVE;
|
||||
}
|
||||
else if (strcasecmp(buffer, "closing") == 0)
|
||||
{
|
||||
handler->state = SESSION_STATE_CLOSING;
|
||||
}
|
||||
else if (strcasecmp(buffer, "resetall") == 0)
|
||||
{
|
||||
handler->state = SESSION_STATE_RESETALL;
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_ERROR("%s: unexpected control packet: (invalid state value) %s", LOG_TAG_CTRLPKT, buffer);
|
||||
goto error_out;
|
||||
}
|
||||
if (handler->state != SESSION_STATE_ACTIVE)
|
||||
{
|
||||
goto success_out;
|
||||
}
|
||||
|
||||
// method
|
||||
temp = mpack_node_map_cstr(root, "method");
|
||||
if (mpack_node_is_nil(temp))
|
||||
{
|
||||
LOG_ERROR("%s: unexpected control packet: (method no found)", LOG_TAG_CTRLPKT);
|
||||
goto error_out;
|
||||
}
|
||||
mpack_node_copy_cstr(temp, handler->method, sizeof(handler->method));
|
||||
if (strcasecmp(handler->method, "policy_update") != 0)
|
||||
{
|
||||
LOG_ERROR("%s: unexpected control packet: (invalid method value) %s", LOG_TAG_CTRLPKT, handler->method);
|
||||
goto error_out;
|
||||
}
|
||||
|
||||
// params
|
||||
temp = mpack_node_map_cstr(root, "params");
|
||||
if (mpack_node_is_nil(temp))
|
||||
{
|
||||
LOG_ERROR("%s: unexpected control packet: (params no found)", LOG_TAG_CTRLPKT);
|
||||
goto error_out;
|
||||
}
|
||||
// params->sce
|
||||
temp = mpack_node_map_cstr(temp, "sce");
|
||||
if (mpack_node_is_nil(temp))
|
||||
{
|
||||
LOG_ERROR("%s: unexpected control packet: (sce no found)", LOG_TAG_CTRLPKT);
|
||||
goto error_out;
|
||||
}
|
||||
// params->sce->rule_ids
|
||||
temp = mpack_node_map_cstr(temp, "rule_ids");
|
||||
if (mpack_node_is_nil(temp))
|
||||
{
|
||||
LOG_ERROR("%s: unexpected control packet: (rule_ids no found)", LOG_TAG_CTRLPKT);
|
||||
goto error_out;
|
||||
}
|
||||
handler->rule_id_num = MIN(mpack_node_array_length(temp), (int)(sizeof(handler->rule_ids) / sizeof(handler->rule_ids[0])));
|
||||
if (handler->rule_id_num <= 0)
|
||||
{
|
||||
LOG_ERROR("%s: unexpected control packet: (invalid rule id num) %ld", LOG_TAG_CTRLPKT, mpack_node_array_length(temp));
|
||||
goto error_out;
|
||||
}
|
||||
for (int i = 0; i < handler->rule_id_num; i++)
|
||||
{
|
||||
item = mpack_node_array_at(temp, i);
|
||||
handler->rule_ids[i] = mpack_node_u64(item);
|
||||
}
|
||||
|
||||
success_out:
|
||||
ret = mpack_tree_destroy(&tree);
|
||||
if (ret != mpack_ok)
|
||||
{
|
||||
LOG_ERROR("%s: unexpected control packet: (mpack return error) %d", LOG_TAG_CTRLPKT, ret);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
error_out:
|
||||
mpack_tree_destroy(&tree);
|
||||
return -1;
|
||||
}
|
||||
|
||||
// return 0 : success
|
||||
// return -1 : error
|
||||
int ctrl_packet_parser_cjson(struct ctrl_pkt_parser *handler, const char *data, size_t length)
|
||||
{
|
||||
int iter = 0;
|
||||
cJSON *item = NULL;
|
||||
@@ -152,6 +298,14 @@ error_out:
|
||||
return -1;
|
||||
}
|
||||
|
||||
// return 0 : success
|
||||
// return -1 : error
|
||||
int ctrl_packet_parser_parse(struct ctrl_pkt_parser *handler, const char *data, size_t length)
|
||||
{
|
||||
// return ctrl_packet_parser_cjson(handler, data, length);
|
||||
return ctrl_packet_parser_mpack(handler, data, length);
|
||||
}
|
||||
|
||||
void ctrl_packet_parser_dump(struct ctrl_pkt_parser *handler)
|
||||
{
|
||||
if (handler)
|
||||
@@ -164,7 +318,7 @@ void ctrl_packet_parser_dump(struct ctrl_pkt_parser *handler)
|
||||
|
||||
for (int i = 0; i < handler->rule_id_num; i++)
|
||||
{
|
||||
LOG_INFO("%s: rule_ids[%03d] : %lu", LOG_TAG_POLICY, i, handler->rule_ids[i]);
|
||||
LOG_INFO("%s: rule_ids[%03d] : %lu", LOG_TAG_POLICY, i, handler->rule_ids[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
7304
common/src/mpack.cpp
Normal file
7304
common/src/mpack.cpp
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,25 +1,335 @@
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "mpack.h"
|
||||
#include "ctrl_packet.h"
|
||||
|
||||
TEST(CTRL_PACKET, PARSE)
|
||||
{
|
||||
const char *data = "{\"tsync\":\"1.0\",\"session_id\":\"123456789\",\"state\":\"active\",\"method\":\"policy_update\",\"params\":{\"service_chaining\":[1,2,3],\"shaping\":[4,5,6]}}";
|
||||
size_t length = strlen(data);
|
||||
static u_char ctrl_pkt_active0[] = {
|
||||
0x85, 0xA5, 0x74, 0x73, 0x79, 0x6E, 0x63, 0xA3, 0x32, 0x2E, 0x30, 0xAA, 0x73, 0x65, 0x73, 0x73,
|
||||
0x69, 0x6F, 0x6E, 0x5F, 0x69, 0x64, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA5,
|
||||
0x73, 0x74, 0x61, 0x74, 0x65, 0xA6, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0xA6, 0x6D, 0x65, 0x74,
|
||||
0x68, 0x6F, 0x64, 0xAD, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79, 0x5F, 0x75, 0x70, 0x64, 0x61, 0x74,
|
||||
0x65, 0xA6, 0x70, 0x61, 0x72, 0x61, 0x6D, 0x73, 0x83, 0xA3, 0x73, 0x63, 0x65, 0x81, 0xA8, 0x72,
|
||||
0x75, 0x6C, 0x65, 0x5F, 0x69, 0x64, 0x73, 0x92, 0xCD, 0x04, 0x57, 0xCD, 0x08, 0xAE, 0xA6, 0x73,
|
||||
0x68, 0x61, 0x70, 0x65, 0x72, 0x81, 0xA8, 0x72, 0x75, 0x6C, 0x65, 0x5F, 0x69, 0x64, 0x73, 0x92,
|
||||
0xCD, 0x0D, 0x05, 0xCD, 0x11, 0x5C, 0xA5, 0x70, 0x72, 0x6F, 0x78, 0x79, 0x82, 0xA8, 0x72, 0x75,
|
||||
0x6C, 0x65, 0x5F, 0x69, 0x64, 0x73, 0x92, 0xCD, 0x15, 0xB3, 0xCD, 0x1A, 0x0A, 0xAD, 0x74, 0x63,
|
||||
0x70, 0x5F, 0x68, 0x61, 0x6E, 0x64, 0x73, 0x68, 0x61, 0x6B, 0x65, 0xDC, 0x00, 0x24, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xA3, 0x31,
|
||||
0x32, 0x33, 0xA3, 0x31, 0x32, 0x33, 0xA3, 0x31, 0x32, 0x33, 0xA3, 0x31, 0x32, 0x33, 0xA3, 0x31,
|
||||
0x32, 0x33, 0xA3, 0x31, 0x32, 0x33, 0xA3, 0x31, 0x32, 0x33, 0xA3, 0x31, 0x32, 0x33, 0xA3, 0x31,
|
||||
0x32, 0x33, 0xA3, 0x31, 0x32, 0x33, 0xA3, 0x31, 0x32, 0x33, 0xA3, 0x31, 0x32, 0x33, 0xA3, 0x31,
|
||||
0x32, 0x33, 0xA3, 0x31, 0x32, 0x33, 0xA3, 0x31, 0x32, 0x33, 0x92, 0xCD, 0x15, 0xB3, 0xCD, 0x1A,
|
||||
0x0A, 0x92, 0xCD, 0x15, 0xB3, 0xCD, 0x1A, 0x0A, 0x92, 0xCD, 0x15, 0xB3, 0xCD, 0x1A, 0x0A, 0x92,
|
||||
0x01, 0x01, 0x92, 0x01, 0x01};
|
||||
|
||||
static u_char ctrl_pkt_active1[] = {
|
||||
0x85, 0xA5, 0x74, 0x73, 0x79, 0x6E, 0x63, 0xA3, 0x32, 0x2E, 0x30, 0xAA, 0x73, 0x65, 0x73, 0x73,
|
||||
0x69, 0x6F, 0x6E, 0x5F, 0x69, 0x64, 0xCF, 0x04, 0x08, 0x02, 0x1B, 0x68, 0x4C, 0x03, 0xE9, 0xA5,
|
||||
0x73, 0x74, 0x61, 0x74, 0x65, 0xA6, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0xA6, 0x6D, 0x65, 0x74,
|
||||
0x68, 0x6F, 0x64, 0xAD, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79, 0x5F, 0x75, 0x70, 0x64, 0x61, 0x74,
|
||||
0x65, 0xA6, 0x70, 0x61, 0x72, 0x61, 0x6D, 0x73, 0x81, 0xA3, 0x73, 0x63, 0x65, 0x81, 0xA8, 0x72,
|
||||
0x75, 0x6C, 0x65, 0x5F, 0x69, 0x64, 0x73, 0x91, 0xCE, 0x00, 0x0F, 0x2F, 0x7F};
|
||||
|
||||
static u_char ctrl_pkt_opening[] = {
|
||||
0x83, 0xA5, 0x74, 0x73, 0x79, 0x6E, 0x63, 0xA3, 0x32, 0x2E, 0x30, 0xAA, 0x73, 0x65, 0x73, 0x73,
|
||||
0x69, 0x6F, 0x6E, 0x5F, 0x69, 0x64, 0xCF, 0x04, 0x08, 0x02, 0x1B, 0x68, 0x4C, 0x03, 0xE9, 0xA5,
|
||||
0x73, 0x74, 0x61, 0x74, 0x65, 0xA7, 0x6F, 0x70, 0x65, 0x6E, 0x69, 0x6E, 0x67};
|
||||
|
||||
TEST(CTRL_PACKET, PACKAGE0)
|
||||
{
|
||||
char *data;
|
||||
size_t size;
|
||||
mpack_writer_t writer;
|
||||
mpack_writer_init_growable(&writer, &data, &size);
|
||||
|
||||
// write the example on the msgpack homepage
|
||||
mpack_build_map(&writer); // root begin
|
||||
|
||||
// tsync
|
||||
mpack_write_cstr(&writer, "tsync");
|
||||
mpack_write_cstr(&writer, "2.0");
|
||||
|
||||
// session_id
|
||||
mpack_write_cstr(&writer, "session_id");
|
||||
mpack_write_u64(&writer, 18446744073709551615);
|
||||
|
||||
// state
|
||||
mpack_write_cstr(&writer, "state");
|
||||
mpack_write_cstr(&writer, "active");
|
||||
|
||||
// method
|
||||
mpack_write_cstr(&writer, "method");
|
||||
mpack_write_cstr(&writer, "policy_update");
|
||||
|
||||
// params
|
||||
{
|
||||
mpack_write_cstr(&writer, "params");
|
||||
mpack_build_map(&writer); // params value begin
|
||||
|
||||
// sce
|
||||
{
|
||||
mpack_write_cstr(&writer, "sce");
|
||||
mpack_build_map(&writer);
|
||||
|
||||
mpack_write_cstr(&writer, "rule_ids");
|
||||
mpack_build_array(&writer);
|
||||
mpack_write_u64(&writer, 1111);
|
||||
mpack_write_u64(&writer, 2222);
|
||||
mpack_complete_array(&writer);
|
||||
|
||||
mpack_complete_map(&writer);
|
||||
}
|
||||
|
||||
// shaper
|
||||
{
|
||||
mpack_write_cstr(&writer, "shaper");
|
||||
mpack_build_map(&writer);
|
||||
|
||||
mpack_write_cstr(&writer, "rule_ids");
|
||||
mpack_build_array(&writer);
|
||||
mpack_write_u64(&writer, 3333);
|
||||
mpack_write_u64(&writer, 4444);
|
||||
mpack_complete_array(&writer);
|
||||
|
||||
mpack_complete_map(&writer);
|
||||
}
|
||||
|
||||
// proxy
|
||||
{
|
||||
mpack_write_cstr(&writer, "proxy");
|
||||
mpack_build_map(&writer); // proxy value begin
|
||||
|
||||
mpack_write_cstr(&writer, "rule_ids");
|
||||
mpack_build_array(&writer);
|
||||
mpack_write_u64(&writer, 5555);
|
||||
mpack_write_u64(&writer, 6666);
|
||||
mpack_complete_array(&writer);
|
||||
|
||||
mpack_write_cstr(&writer, "tcp_handshake");
|
||||
|
||||
mpack_build_array(&writer); // tcp_handshake value begin
|
||||
mpack_write_u32(&writer, 1); // tcp_seq
|
||||
mpack_write_u32(&writer, 1); // tcp_ack
|
||||
mpack_write_u16(&writer, 1); // tcp_mss_client
|
||||
mpack_write_u16(&writer, 1); // tcp_mss_server
|
||||
mpack_write_u8(&writer, 1); // tcp_wsacle_client
|
||||
mpack_write_u8(&writer, 1); // tcp_wsacle_server
|
||||
mpack_write_u8(&writer, 1); // tcp_sack_client
|
||||
mpack_write_u8(&writer, 1); // tcp_sack_server
|
||||
mpack_write_u8(&writer, 1); // tcp_ts_client
|
||||
mpack_write_u8(&writer, 1); // tcp_ts_server
|
||||
mpack_write_u8(&writer, 1); // tcp_protocol
|
||||
mpack_write_u16(&writer, 1); // tcp_window_client
|
||||
mpack_write_u16(&writer, 1); // tcp_window_server
|
||||
mpack_write_u32(&writer, 1); // tcp_ts_client_val
|
||||
mpack_write_u32(&writer, 1); // tcp_ts_server_val
|
||||
mpack_write_u8(&writer, 1); // tcp_info_packet_cur_dir
|
||||
mpack_write_str(&writer, "123", 3); // src_sub_id
|
||||
mpack_write_str(&writer, "123", 3); // dst_sub_id
|
||||
mpack_write_str(&writer, "123", 3); // src_asn
|
||||
mpack_write_str(&writer, "123", 3); // dst_asn
|
||||
mpack_write_str(&writer, "123", 3); // src_organization
|
||||
mpack_write_str(&writer, "123", 3); // dst_organization
|
||||
mpack_write_str(&writer, "123", 3); // src_ip_location_country
|
||||
mpack_write_str(&writer, "123", 3); // dst_ip_location_country
|
||||
mpack_write_str(&writer, "123", 3); // src_ip_location_provine
|
||||
mpack_write_str(&writer, "123", 3); // dst_ip_location_provine
|
||||
mpack_write_str(&writer, "123", 3); // src_ip_location_city
|
||||
mpack_write_str(&writer, "123", 3); // dst_ip_location_city
|
||||
mpack_write_str(&writer, "123", 3); // src_ip_location_subdivision
|
||||
mpack_write_str(&writer, "123", 3); // dst_ip_location_subdivision
|
||||
mpack_write_str(&writer, "123", 3); // ssl_client_ja3_fingerprint
|
||||
mpack_build_array(&writer); // fqdn_cat_id_val
|
||||
mpack_write_u32(&writer, 5555);
|
||||
mpack_write_u32(&writer, 6666);
|
||||
mpack_complete_array(&writer);
|
||||
mpack_build_array(&writer); // tcp_seq_sids
|
||||
mpack_write_u16(&writer, 5555);
|
||||
mpack_write_u16(&writer, 6666);
|
||||
mpack_complete_array(&writer);
|
||||
mpack_build_array(&writer); // tcp_ack_sids
|
||||
mpack_write_u16(&writer, 5555);
|
||||
mpack_write_u16(&writer, 6666);
|
||||
mpack_complete_array(&writer);
|
||||
mpack_build_array(&writer); // tcp_seq_route_ctx
|
||||
mpack_write_u8(&writer, 1);
|
||||
mpack_write_u8(&writer, 1);
|
||||
mpack_complete_array(&writer);
|
||||
mpack_build_array(&writer); // tcp_ack_route_ctx
|
||||
mpack_write_u8(&writer, 1);
|
||||
mpack_write_u8(&writer, 1);
|
||||
mpack_complete_array(&writer);
|
||||
mpack_complete_array(&writer); // tcp_handshake value end
|
||||
|
||||
mpack_complete_map(&writer); // proxy value end
|
||||
}
|
||||
|
||||
mpack_complete_map(&writer); // params value end
|
||||
}
|
||||
|
||||
mpack_complete_map(&writer); // root end
|
||||
|
||||
// finish writing
|
||||
EXPECT_TRUE(mpack_writer_destroy(&writer) == mpack_ok);
|
||||
EXPECT_TRUE(size == sizeof(ctrl_pkt_active0));
|
||||
EXPECT_TRUE(memcmp(data, ctrl_pkt_active0, size) == 0);
|
||||
|
||||
// data to hex
|
||||
for (size_t i = 0; i < size; i++)
|
||||
{
|
||||
printf("%02X, ", data[i]);
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
free(data);
|
||||
}
|
||||
|
||||
TEST(CTRL_PACKET, PACKAGE1)
|
||||
{
|
||||
char *data;
|
||||
size_t size;
|
||||
mpack_writer_t writer;
|
||||
mpack_writer_init_growable(&writer, &data, &size);
|
||||
|
||||
// write the example on the msgpack homepage
|
||||
mpack_build_map(&writer); // root begin
|
||||
|
||||
// tsync
|
||||
mpack_write_cstr(&writer, "tsync");
|
||||
mpack_write_cstr(&writer, "2.0");
|
||||
|
||||
// session_id
|
||||
mpack_write_cstr(&writer, "session_id");
|
||||
mpack_write_u64(&writer, 290484492702581737);
|
||||
|
||||
// state
|
||||
mpack_write_cstr(&writer, "state");
|
||||
mpack_write_cstr(&writer, "active");
|
||||
|
||||
// method
|
||||
mpack_write_cstr(&writer, "method");
|
||||
mpack_write_cstr(&writer, "policy_update");
|
||||
|
||||
// params
|
||||
{
|
||||
mpack_write_cstr(&writer, "params");
|
||||
mpack_build_map(&writer); // params value begin
|
||||
|
||||
// sce
|
||||
{
|
||||
mpack_write_cstr(&writer, "sce");
|
||||
mpack_build_map(&writer);
|
||||
|
||||
mpack_write_cstr(&writer, "rule_ids");
|
||||
mpack_build_array(&writer);
|
||||
mpack_write_u64(&writer, 995199);
|
||||
mpack_complete_array(&writer);
|
||||
|
||||
mpack_complete_map(&writer);
|
||||
}
|
||||
|
||||
mpack_complete_map(&writer); // params value end
|
||||
}
|
||||
|
||||
mpack_complete_map(&writer); // root end
|
||||
|
||||
// finish writing
|
||||
EXPECT_TRUE(mpack_writer_destroy(&writer) == mpack_ok);
|
||||
EXPECT_TRUE(size == sizeof(ctrl_pkt_active1));
|
||||
EXPECT_TRUE(memcmp(data, ctrl_pkt_active1, size) == 0);
|
||||
|
||||
// data to hex
|
||||
for (size_t i = 0; i < size; i++)
|
||||
{
|
||||
printf("%02X, ", data[i]);
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
free(data);
|
||||
}
|
||||
|
||||
TEST(CTRL_PACKET, PACKAGE2)
|
||||
{
|
||||
char *data;
|
||||
size_t size;
|
||||
mpack_writer_t writer;
|
||||
mpack_writer_init_growable(&writer, &data, &size);
|
||||
|
||||
// write the example on the msgpack homepage
|
||||
mpack_build_map(&writer); // root begin
|
||||
|
||||
// tsync
|
||||
mpack_write_cstr(&writer, "tsync");
|
||||
mpack_write_cstr(&writer, "2.0");
|
||||
|
||||
// session_id
|
||||
mpack_write_cstr(&writer, "session_id");
|
||||
mpack_write_u64(&writer, 290484492702581737);
|
||||
|
||||
// state
|
||||
mpack_write_cstr(&writer, "state");
|
||||
mpack_write_cstr(&writer, "opening");
|
||||
|
||||
mpack_complete_map(&writer); // root end
|
||||
|
||||
// finish writing
|
||||
EXPECT_TRUE(mpack_writer_destroy(&writer) == mpack_ok);
|
||||
EXPECT_TRUE(size == sizeof(ctrl_pkt_opening));
|
||||
EXPECT_TRUE(memcmp(data, ctrl_pkt_opening, size) == 0);
|
||||
|
||||
// data to hex
|
||||
for (size_t i = 0; i < size; i++)
|
||||
{
|
||||
printf("%02X, ", data[i]);
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
free(data);
|
||||
}
|
||||
|
||||
TEST(CTRL_PACKET, PARSE0)
|
||||
{
|
||||
struct ctrl_pkt_parser parser;
|
||||
ctrl_packet_parser_init(&parser);
|
||||
EXPECT_TRUE(ctrl_packet_parser_parse(&parser, data, length) == 0);
|
||||
EXPECT_TRUE(ctrl_packet_parser_parse(&parser, (const char *)ctrl_pkt_active0, sizeof(ctrl_pkt_active0)) == 0);
|
||||
ctrl_packet_parser_dump(&parser);
|
||||
|
||||
EXPECT_STREQ(parser.tsync, "1.0");
|
||||
EXPECT_TRUE(parser.session_id == 123456789);
|
||||
EXPECT_STREQ(parser.tsync, "2.0");
|
||||
EXPECT_TRUE(parser.session_id == 18446744073709551615);
|
||||
EXPECT_TRUE(parser.state == SESSION_STATE_ACTIVE);
|
||||
EXPECT_STREQ(parser.method, "policy_update");
|
||||
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);
|
||||
EXPECT_TRUE(parser.rule_id_num == 2);
|
||||
EXPECT_TRUE(parser.rule_ids[0] == 1111);
|
||||
EXPECT_TRUE(parser.rule_ids[1] == 2222);
|
||||
}
|
||||
|
||||
TEST(CTRL_PACKET, PARSE1)
|
||||
{
|
||||
struct ctrl_pkt_parser parser;
|
||||
ctrl_packet_parser_init(&parser);
|
||||
EXPECT_TRUE(ctrl_packet_parser_parse(&parser, (const char *)ctrl_pkt_active1, sizeof(ctrl_pkt_active1)) == 0);
|
||||
ctrl_packet_parser_dump(&parser);
|
||||
|
||||
EXPECT_STREQ(parser.tsync, "2.0");
|
||||
EXPECT_TRUE(parser.session_id == 290484492702581737);
|
||||
EXPECT_TRUE(parser.state == SESSION_STATE_ACTIVE);
|
||||
EXPECT_STREQ(parser.method, "policy_update");
|
||||
EXPECT_TRUE(parser.rule_id_num == 1);
|
||||
EXPECT_TRUE(parser.rule_ids[0] == 995199);
|
||||
}
|
||||
|
||||
TEST(CTRL_PACKET, PARSE2)
|
||||
{
|
||||
struct ctrl_pkt_parser parser;
|
||||
ctrl_packet_parser_init(&parser);
|
||||
EXPECT_TRUE(ctrl_packet_parser_parse(&parser, (const char *)ctrl_pkt_opening, sizeof(ctrl_pkt_opening)) == 0);
|
||||
ctrl_packet_parser_dump(&parser);
|
||||
|
||||
EXPECT_STREQ(parser.tsync, "2.0");
|
||||
EXPECT_TRUE(parser.session_id == 290484492702581737);
|
||||
EXPECT_TRUE(parser.state == SESSION_STATE_OPENING);
|
||||
EXPECT_STREQ(parser.method, "");
|
||||
EXPECT_TRUE(parser.rule_id_num == 0);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include <netinet/udp.h>
|
||||
#include <netinet/ether.h>
|
||||
|
||||
#include <cjson/cJSON.h>
|
||||
#include "mpack.h"
|
||||
#include <MESA/MESA_prof_load.h>
|
||||
|
||||
#include "log.h"
|
||||
@@ -561,37 +561,81 @@ static int send_event_log(struct session_ctx *session_ctx, struct selected_chain
|
||||
struct packet_io *packet_io = thread_ctx->ref_io;
|
||||
int thread_index = thread_ctx->thread_index;
|
||||
|
||||
char buffer[32] = {0};
|
||||
sprintf(buffer, "%lu", session_ctx->session_id);
|
||||
cJSON *root = cJSON_CreateObject();
|
||||
cJSON_AddStringToObject(root, "tsync", "1.0");
|
||||
cJSON_AddStringToObject(root, "session_id", buffer);
|
||||
cJSON_AddStringToObject(root, "state", "closing");
|
||||
cJSON_AddStringToObject(root, "method", "log_update");
|
||||
cJSON *sf_profile_ids = cJSON_CreateArray();
|
||||
for (int i = 0; i < chaining->chaining_used; i++)
|
||||
{
|
||||
struct selected_sf *sf = &(chaining->chaining[i]);
|
||||
if (sf->sf_need_skip == 0 && sf->sf_action == SESSION_ACTION_FORWARD)
|
||||
{
|
||||
cJSON *id = cJSON_CreateNumber(sf->sf_profile_id);
|
||||
cJSON_AddItemToArray(sf_profile_ids, id);
|
||||
}
|
||||
}
|
||||
cJSON *params = cJSON_CreateObject();
|
||||
cJSON_AddItemToObject(params, "sf_profile_ids", sf_profile_ids);
|
||||
cJSON_AddItemToObject(root, "params", params);
|
||||
char *json_str = cJSON_PrintUnformatted(root);
|
||||
char *data;
|
||||
size_t size;
|
||||
mpack_writer_t writer;
|
||||
mpack_writer_init_growable(&writer, &data, &size);
|
||||
|
||||
LOG_INFO("%s: session %lu %s event log: %s", LOG_TAG_METRICS, session_ctx->session_id, session_ctx->session_addr, json_str);
|
||||
// write the example on the msgpack homepage
|
||||
mpack_build_map(&writer); // root begin
|
||||
|
||||
// tsync
|
||||
mpack_write_cstr(&writer, "tsync");
|
||||
mpack_write_cstr(&writer, "2.0");
|
||||
|
||||
// session_id
|
||||
mpack_write_cstr(&writer, "session_id");
|
||||
mpack_write_u64(&writer, session_ctx->session_id);
|
||||
|
||||
// state
|
||||
// mpack_write_cstr(&writer, "state");
|
||||
// mpack_write_cstr(&writer, "closed");
|
||||
|
||||
// method
|
||||
mpack_write_cstr(&writer, "method");
|
||||
mpack_write_cstr(&writer, "log_update");
|
||||
|
||||
// params
|
||||
{
|
||||
mpack_write_cstr(&writer, "params");
|
||||
mpack_build_map(&writer); // params value begin
|
||||
|
||||
// sce
|
||||
{
|
||||
mpack_write_cstr(&writer, "sce");
|
||||
mpack_build_map(&writer); // sce value begin
|
||||
|
||||
mpack_write_cstr(&writer, "sf_profile_ids");
|
||||
mpack_build_array(&writer);
|
||||
for (int i = 0; i < chaining->chaining_used; i++)
|
||||
{
|
||||
struct selected_sf *sf = &(chaining->chaining[i]);
|
||||
if (sf->sf_need_skip == 0 && sf->sf_action == SESSION_ACTION_FORWARD)
|
||||
{
|
||||
mpack_write_u32(&writer, sf->sf_profile_id);
|
||||
}
|
||||
}
|
||||
mpack_complete_array(&writer);
|
||||
|
||||
mpack_complete_map(&writer); // sce value end
|
||||
}
|
||||
|
||||
mpack_complete_map(&writer); // params value end
|
||||
}
|
||||
|
||||
mpack_complete_map(&writer); // root end
|
||||
|
||||
// finish writing
|
||||
if (mpack_writer_destroy(&writer) != mpack_ok)
|
||||
{
|
||||
assert(0);
|
||||
if (data)
|
||||
{
|
||||
free(data);
|
||||
data = NULL;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
LOG_INFO("%s: session %lu %s send event log %ld bytes", LOG_TAG_METRICS, session_ctx->session_id, session_ctx->session_addr, size);
|
||||
|
||||
marsio_buff_t *tx_buffs[1];
|
||||
char *raw_packet_header_data = session_ctx->ctrl_meta->raw_data;
|
||||
int raw_packet_header_len = session_ctx->ctrl_meta->l7offset;
|
||||
marsio_buff_malloc_global(packet_io->instance, tx_buffs, 1, 0, thread_index);
|
||||
char *dst = marsio_buff_append(tx_buffs[0], raw_packet_header_len + strlen(json_str));
|
||||
char *dst = marsio_buff_append(tx_buffs[0], raw_packet_header_len + size);
|
||||
memcpy(dst, raw_packet_header_data, raw_packet_header_len);
|
||||
memcpy(dst + raw_packet_header_len, json_str, strlen(json_str));
|
||||
memcpy(dst + raw_packet_header_len, data, size);
|
||||
|
||||
struct metadata meta = {0};
|
||||
meta.session_id = session_ctx->session_id;
|
||||
@@ -603,8 +647,7 @@ static int send_event_log(struct session_ctx *session_ctx, struct selected_chain
|
||||
mbuff_set_metadata(tx_buffs[0], &meta);
|
||||
int nsend = marsio_buff_datalen(tx_buffs[0]);
|
||||
marsio_send_burst(packet_io->dev_nf_interface.mr_path, thread_index, tx_buffs, 1);
|
||||
free(json_str);
|
||||
cJSON_Delete(root);
|
||||
free(data);
|
||||
|
||||
return nsend;
|
||||
}
|
||||
@@ -712,9 +755,12 @@ static void handle_session_closing(struct metadata *meta, struct ctrl_pkt_parser
|
||||
if (chaining_raw->chaining_used && sce_ctx->enable_send_log)
|
||||
{
|
||||
nsend = send_event_log(s_ctx, chaining_raw, thread_ctx);
|
||||
ATOMIC_INC(&(g_metrics->sf_session.log));
|
||||
throughput_metrics_inc(&(g_metrics->ctrl_pkt.tx), 1, nsend);
|
||||
throughput_metrics_inc(&(g_metrics->device.nf_tx), 1, nsend);
|
||||
if (nsend > 0)
|
||||
{
|
||||
ATOMIC_INC(&(g_metrics->sf_session.log));
|
||||
throughput_metrics_inc(&(g_metrics->ctrl_pkt.tx), 1, nsend);
|
||||
throughput_metrics_inc(&(g_metrics->device.nf_tx), 1, nsend);
|
||||
}
|
||||
}
|
||||
|
||||
struct selected_chaining *chaining_decrypted = s_ctx->chainings.chaining_decrypted;
|
||||
@@ -722,9 +768,12 @@ static void handle_session_closing(struct metadata *meta, struct ctrl_pkt_parser
|
||||
if (chaining_decrypted->chaining_used && sce_ctx->enable_send_log)
|
||||
{
|
||||
nsend = send_event_log(s_ctx, chaining_decrypted, thread_ctx);
|
||||
ATOMIC_INC(&(g_metrics->sf_session.log));
|
||||
throughput_metrics_inc(&(g_metrics->ctrl_pkt.tx), 1, nsend);
|
||||
throughput_metrics_inc(&(g_metrics->device.nf_tx), 1, nsend);
|
||||
if (nsend > 0)
|
||||
{
|
||||
ATOMIC_INC(&(g_metrics->sf_session.log));
|
||||
throughput_metrics_inc(&(g_metrics->ctrl_pkt.tx), 1, nsend);
|
||||
throughput_metrics_inc(&(g_metrics->device.nf_tx), 1, nsend);
|
||||
}
|
||||
}
|
||||
|
||||
session_table_delete_by_id(session_table, meta->session_id);
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
#include "gtest_utils.h"
|
||||
|
||||
// 185 bytes
|
||||
// 147 bytes
|
||||
static u_char ctrl_pkt_active[] = {
|
||||
// Eth + IPv4 + TCP
|
||||
0x48, 0x73, 0x97, 0x96, 0x38, 0x10, 0x0c, 0xa7, 0x5c, 0x64, 0x00, 0x01, 0x08, 0x00, 0x45, 0x00,
|
||||
0x00, 0xab, 0x76, 0x23, 0x40, 0x00, 0x7d, 0x06, 0x67, 0x66, 0xc0, 0xa8, 0x29, 0x40, 0x5d, 0xb8,
|
||||
0xd8, 0x22, 0xce, 0xec, 0x00, 0x50, 0xf8, 0x77, 0x0e, 0x1e, 0x47, 0x34, 0x32, 0xb9, 0x50, 0x18,
|
||||
0x04, 0x88, 0x7a, 0xe8, 0x00, 0x00, 0x7b, 0x22, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x22,
|
||||
0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x2c, 0x22, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22,
|
||||
0x3a, 0x22, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22,
|
||||
0x2c, 0x22, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x73, 0x65, 0x72, 0x76,
|
||||
0x69, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x5b, 0x39,
|
||||
0x39, 0x35, 0x31, 0x39, 0x39, 0x5d, 0x7d, 0x2c, 0x22, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
|
||||
0x5f, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x32, 0x39, 0x30, 0x34, 0x38, 0x34, 0x34, 0x39, 0x32, 0x37,
|
||||
0x30, 0x32, 0x35, 0x38, 0x31, 0x37, 0x33, 0x37, 0x22, 0x2c, 0x22, 0x74, 0x73, 0x79, 0x6e, 0x63,
|
||||
0x22, 0x3a, 0x22, 0x31, 0x2e, 0x30, 0x22, 0x7d, 0x00};
|
||||
0x04, 0x88, 0x7a, 0xe8, 0x00, 0x00,
|
||||
// msg payload
|
||||
0x85, 0xA5, 0x74, 0x73, 0x79, 0x6E, 0x63, 0xA3, 0x32, 0x2E, 0x30, 0xAA, 0x73, 0x65, 0x73, 0x73,
|
||||
0x69, 0x6F, 0x6E, 0x5F, 0x69, 0x64, 0xCF, 0x04, 0x08, 0x02, 0x1B, 0x68, 0x4C, 0x03, 0xE9, 0xA5,
|
||||
0x73, 0x74, 0x61, 0x74, 0x65, 0xA6, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0xA6, 0x6D, 0x65, 0x74,
|
||||
0x68, 0x6F, 0x64, 0xAD, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79, 0x5F, 0x75, 0x70, 0x64, 0x61, 0x74,
|
||||
0x65, 0xA6, 0x70, 0x61, 0x72, 0x61, 0x6D, 0x73, 0x81, 0xA3, 0x73, 0x63, 0x65, 0x81, 0xA8, 0x72,
|
||||
0x75, 0x6C, 0x65, 0x5F, 0x69, 0x64, 0x73, 0x91, 0xCE, 0x00, 0x0F, 0x2F, 0x7F};
|
||||
|
||||
TEST(PACKET_IO, CTRL_PKT_ACTIVE)
|
||||
{
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
#include "gtest_utils.h"
|
||||
|
||||
// 122 bytes
|
||||
// 99 bytes
|
||||
static u_char ctrl_pkt_opening[] = {
|
||||
0x48, 0x73, 0x97, 0x96, 0x38, 0x10, 0x0c, 0xa7, 0x5c, 0x64, 0x00, 0x01, 0x08, 0x00, 0x45, 0x00,
|
||||
0x00, 0x6c, 0xff, 0xde, 0x40, 0x00, 0x33, 0x06, 0x27, 0xea, 0xc0, 0xa8, 0x29, 0x40, 0x5d, 0xb8,
|
||||
0xd8, 0x22, 0xce, 0xec, 0x00, 0x50, 0xf8, 0x77, 0x0d, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x50, 0x18,
|
||||
0x03, 0xec, 0x08, 0xa7, 0x00, 0x00, 0x7b, 0x22, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x22,
|
||||
0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x2c, 0x22, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
|
||||
0x6e, 0x5f, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x32, 0x39, 0x30, 0x34, 0x38, 0x34, 0x34, 0x39, 0x32,
|
||||
0x37, 0x30, 0x32, 0x35, 0x38, 0x31, 0x37, 0x33, 0x37, 0x22, 0x2c, 0x22, 0x74, 0x73, 0x79, 0x6e,
|
||||
0x63, 0x22, 0x3a, 0x22, 0x31, 0x2e, 0x30, 0x22, 0x7d, 0x00};
|
||||
0x03, 0xec, 0x08, 0xa7, 0x00, 0x00,
|
||||
// msg payload
|
||||
0x83, 0xA5, 0x74, 0x73, 0x79, 0x6E, 0x63, 0xA3, 0x32, 0x2E, 0x30, 0xAA, 0x73, 0x65, 0x73, 0x73,
|
||||
0x69, 0x6F, 0x6E, 0x5F, 0x69, 0x64, 0xCF, 0x04, 0x08, 0x02, 0x1B, 0x68, 0x4C, 0x03, 0xE9, 0xA5,
|
||||
0x73, 0x74, 0x61, 0x74, 0x65, 0xA7, 0x6F, 0x70, 0x65, 0x6E, 0x69, 0x6E, 0x67};
|
||||
|
||||
TEST(PACKET_IO, CTRL_PKT_OPENING)
|
||||
{
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
#include "gtest_utils.h"
|
||||
|
||||
// 185 bytes
|
||||
// 147 bytes
|
||||
static u_char ctrl_pkt_active[] = {
|
||||
// Eth + IPv4 + TCP
|
||||
0x48, 0x73, 0x97, 0x96, 0x38, 0x10, 0x0c, 0xa7, 0x5c, 0x64, 0x00, 0x01, 0x08, 0x00, 0x45, 0x00,
|
||||
0x00, 0xab, 0x76, 0x23, 0x40, 0x00, 0x7d, 0x06, 0x67, 0x66, 0xc0, 0xa8, 0x29, 0x40, 0x5d, 0xb8,
|
||||
0xd8, 0x22, 0xce, 0xec, 0x00, 0x50, 0xf8, 0x77, 0x0e, 0x1e, 0x47, 0x34, 0x32, 0xb9, 0x50, 0x18,
|
||||
0x04, 0x88, 0x7a, 0xe8, 0x00, 0x00, 0x7b, 0x22, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x22,
|
||||
0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x2c, 0x22, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22,
|
||||
0x3a, 0x22, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22,
|
||||
0x2c, 0x22, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x73, 0x65, 0x72, 0x76,
|
||||
0x69, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x5b, 0x39,
|
||||
0x39, 0x35, 0x31, 0x39, 0x39, 0x5d, 0x7d, 0x2c, 0x22, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
|
||||
0x5f, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x32, 0x39, 0x30, 0x34, 0x38, 0x34, 0x34, 0x39, 0x32, 0x37,
|
||||
0x30, 0x32, 0x35, 0x38, 0x31, 0x37, 0x33, 0x37, 0x22, 0x2c, 0x22, 0x74, 0x73, 0x79, 0x6e, 0x63,
|
||||
0x22, 0x3a, 0x22, 0x31, 0x2e, 0x30, 0x22, 0x7d, 0x00};
|
||||
0x04, 0x88, 0x7a, 0xe8, 0x00, 0x00,
|
||||
// msg payload
|
||||
0x85, 0xA5, 0x74, 0x73, 0x79, 0x6E, 0x63, 0xA3, 0x32, 0x2E, 0x30, 0xAA, 0x73, 0x65, 0x73, 0x73,
|
||||
0x69, 0x6F, 0x6E, 0x5F, 0x69, 0x64, 0xCF, 0x04, 0x08, 0x02, 0x1B, 0x68, 0x4C, 0x03, 0xE9, 0xA5,
|
||||
0x73, 0x74, 0x61, 0x74, 0x65, 0xA6, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0xA6, 0x6D, 0x65, 0x74,
|
||||
0x68, 0x6F, 0x64, 0xAD, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79, 0x5F, 0x75, 0x70, 0x64, 0x61, 0x74,
|
||||
0x65, 0xA6, 0x70, 0x61, 0x72, 0x61, 0x6D, 0x73, 0x81, 0xA3, 0x73, 0x63, 0x65, 0x81, 0xA8, 0x72,
|
||||
0x75, 0x6C, 0x65, 0x5F, 0x69, 0x64, 0x73, 0x91, 0xCE, 0x00, 0x0F, 0x2F, 0x7F};
|
||||
|
||||
// 145 bytes
|
||||
static u_char raw_pkt[] = {
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
#include "gtest_utils.h"
|
||||
|
||||
// 185 bytes
|
||||
// 147 bytes
|
||||
static u_char ctrl_pkt_active[] = {
|
||||
// Eth + IPv4 + TCP
|
||||
0x48, 0x73, 0x97, 0x96, 0x38, 0x10, 0x0c, 0xa7, 0x5c, 0x64, 0x00, 0x01, 0x08, 0x00, 0x45, 0x00,
|
||||
0x00, 0xab, 0x76, 0x23, 0x40, 0x00, 0x7d, 0x06, 0x67, 0x66, 0xc0, 0xa8, 0x29, 0x40, 0x5d, 0xb8,
|
||||
0xd8, 0x22, 0xce, 0xec, 0x00, 0x50, 0xf8, 0x77, 0x0e, 0x1e, 0x47, 0x34, 0x32, 0xb9, 0x50, 0x18,
|
||||
0x04, 0x88, 0x7a, 0xe8, 0x00, 0x00, 0x7b, 0x22, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x22,
|
||||
0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x2c, 0x22, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22,
|
||||
0x3a, 0x22, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22,
|
||||
0x2c, 0x22, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x73, 0x65, 0x72, 0x76,
|
||||
0x69, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x5b, 0x39,
|
||||
0x39, 0x35, 0x31, 0x39, 0x39, 0x5d, 0x7d, 0x2c, 0x22, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
|
||||
0x5f, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x32, 0x39, 0x30, 0x34, 0x38, 0x34, 0x34, 0x39, 0x32, 0x37,
|
||||
0x30, 0x32, 0x35, 0x38, 0x31, 0x37, 0x33, 0x37, 0x22, 0x2c, 0x22, 0x74, 0x73, 0x79, 0x6e, 0x63,
|
||||
0x22, 0x3a, 0x22, 0x31, 0x2e, 0x30, 0x22, 0x7d, 0x00};
|
||||
0x04, 0x88, 0x7a, 0xe8, 0x00, 0x00,
|
||||
// msg payload
|
||||
0x85, 0xA5, 0x74, 0x73, 0x79, 0x6E, 0x63, 0xA3, 0x32, 0x2E, 0x30, 0xAA, 0x73, 0x65, 0x73, 0x73,
|
||||
0x69, 0x6F, 0x6E, 0x5F, 0x69, 0x64, 0xCF, 0x04, 0x08, 0x02, 0x1B, 0x68, 0x4C, 0x03, 0xE9, 0xA5,
|
||||
0x73, 0x74, 0x61, 0x74, 0x65, 0xA6, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0xA6, 0x6D, 0x65, 0x74,
|
||||
0x68, 0x6F, 0x64, 0xAD, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79, 0x5F, 0x75, 0x70, 0x64, 0x61, 0x74,
|
||||
0x65, 0xA6, 0x70, 0x61, 0x72, 0x61, 0x6D, 0x73, 0x81, 0xA3, 0x73, 0x63, 0x65, 0x81, 0xA8, 0x72,
|
||||
0x75, 0x6C, 0x65, 0x5F, 0x69, 0x64, 0x73, 0x91, 0xCE, 0x00, 0x0F, 0x2F, 0x7F};
|
||||
|
||||
// 145 bytes
|
||||
static u_char raw_pkt[] = {
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
#include "gtest_utils.h"
|
||||
|
||||
// 185 bytes
|
||||
// 147 bytes
|
||||
static u_char ctrl_pkt_active[] = {
|
||||
// Eth + IPv4 + TCP
|
||||
0x48, 0x73, 0x97, 0x96, 0x38, 0x10, 0x0c, 0xa7, 0x5c, 0x64, 0x00, 0x01, 0x08, 0x00, 0x45, 0x00,
|
||||
0x00, 0xab, 0x76, 0x23, 0x40, 0x00, 0x7d, 0x06, 0x67, 0x66, 0xc0, 0xa8, 0x29, 0x40, 0x5d, 0xb8,
|
||||
0xd8, 0x22, 0xce, 0xec, 0x00, 0x50, 0xf8, 0x77, 0x0e, 0x1e, 0x47, 0x34, 0x32, 0xb9, 0x50, 0x18,
|
||||
0x04, 0x88, 0x7a, 0xe8, 0x00, 0x00, 0x7b, 0x22, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x22,
|
||||
0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x2c, 0x22, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22,
|
||||
0x3a, 0x22, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22,
|
||||
0x2c, 0x22, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x73, 0x65, 0x72, 0x76,
|
||||
0x69, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x5b, 0x39,
|
||||
0x39, 0x35, 0x31, 0x39, 0x39, 0x5d, 0x7d, 0x2c, 0x22, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
|
||||
0x5f, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x32, 0x39, 0x30, 0x34, 0x38, 0x34, 0x34, 0x39, 0x32, 0x37,
|
||||
0x30, 0x32, 0x35, 0x38, 0x31, 0x37, 0x33, 0x37, 0x22, 0x2c, 0x22, 0x74, 0x73, 0x79, 0x6e, 0x63,
|
||||
0x22, 0x3a, 0x22, 0x31, 0x2e, 0x30, 0x22, 0x7d, 0x00};
|
||||
0x04, 0x88, 0x7a, 0xe8, 0x00, 0x00,
|
||||
// msg payload
|
||||
0x85, 0xA5, 0x74, 0x73, 0x79, 0x6E, 0x63, 0xA3, 0x32, 0x2E, 0x30, 0xAA, 0x73, 0x65, 0x73, 0x73,
|
||||
0x69, 0x6F, 0x6E, 0x5F, 0x69, 0x64, 0xCF, 0x04, 0x08, 0x02, 0x1B, 0x68, 0x4C, 0x03, 0xE9, 0xA5,
|
||||
0x73, 0x74, 0x61, 0x74, 0x65, 0xA6, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0xA6, 0x6D, 0x65, 0x74,
|
||||
0x68, 0x6F, 0x64, 0xAD, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79, 0x5F, 0x75, 0x70, 0x64, 0x61, 0x74,
|
||||
0x65, 0xA6, 0x70, 0x61, 0x72, 0x61, 0x6D, 0x73, 0x81, 0xA3, 0x73, 0x63, 0x65, 0x81, 0xA8, 0x72,
|
||||
0x75, 0x6C, 0x65, 0x5F, 0x69, 0x64, 0x73, 0x91, 0xCE, 0x00, 0x0F, 0x2F, 0x7F};
|
||||
|
||||
// 145 bytes
|
||||
static u_char raw_pkt[] = {
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
#include "gtest_utils.h"
|
||||
|
||||
// 185 bytes
|
||||
// 147 bytes
|
||||
static u_char ctrl_pkt_active[] = {
|
||||
// Eth + IPv4 + TCP
|
||||
0x48, 0x73, 0x97, 0x96, 0x38, 0x10, 0x0c, 0xa7, 0x5c, 0x64, 0x00, 0x01, 0x08, 0x00, 0x45, 0x00,
|
||||
0x00, 0xab, 0x76, 0x23, 0x40, 0x00, 0x7d, 0x06, 0x67, 0x66, 0xc0, 0xa8, 0x29, 0x40, 0x5d, 0xb8,
|
||||
0xd8, 0x22, 0xce, 0xec, 0x00, 0x50, 0xf8, 0x77, 0x0e, 0x1e, 0x47, 0x34, 0x32, 0xb9, 0x50, 0x18,
|
||||
0x04, 0x88, 0x7a, 0xe8, 0x00, 0x00, 0x7b, 0x22, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x22,
|
||||
0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x2c, 0x22, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22,
|
||||
0x3a, 0x22, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22,
|
||||
0x2c, 0x22, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x73, 0x65, 0x72, 0x76,
|
||||
0x69, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x5b, 0x39,
|
||||
0x39, 0x35, 0x31, 0x39, 0x39, 0x5d, 0x7d, 0x2c, 0x22, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
|
||||
0x5f, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x32, 0x39, 0x30, 0x34, 0x38, 0x34, 0x34, 0x39, 0x32, 0x37,
|
||||
0x30, 0x32, 0x35, 0x38, 0x31, 0x37, 0x33, 0x37, 0x22, 0x2c, 0x22, 0x74, 0x73, 0x79, 0x6e, 0x63,
|
||||
0x22, 0x3a, 0x22, 0x31, 0x2e, 0x30, 0x22, 0x7d, 0x00};
|
||||
0x04, 0x88, 0x7a, 0xe8, 0x00, 0x00,
|
||||
// msg payload
|
||||
0x85, 0xA5, 0x74, 0x73, 0x79, 0x6E, 0x63, 0xA3, 0x32, 0x2E, 0x30, 0xAA, 0x73, 0x65, 0x73, 0x73,
|
||||
0x69, 0x6F, 0x6E, 0x5F, 0x69, 0x64, 0xCF, 0x04, 0x08, 0x02, 0x1B, 0x68, 0x4C, 0x03, 0xE9, 0xA5,
|
||||
0x73, 0x74, 0x61, 0x74, 0x65, 0xA6, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0xA6, 0x6D, 0x65, 0x74,
|
||||
0x68, 0x6F, 0x64, 0xAD, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79, 0x5F, 0x75, 0x70, 0x64, 0x61, 0x74,
|
||||
0x65, 0xA6, 0x70, 0x61, 0x72, 0x61, 0x6D, 0x73, 0x81, 0xA3, 0x73, 0x63, 0x65, 0x81, 0xA8, 0x72,
|
||||
0x75, 0x6C, 0x65, 0x5F, 0x69, 0x64, 0x73, 0x91, 0xCE, 0x00, 0x0F, 0x2F, 0x7F};
|
||||
|
||||
// 145 bytes
|
||||
static u_char raw_pkt[] = {
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
#include "gtest_utils.h"
|
||||
|
||||
// 185 bytes
|
||||
// 147 bytes
|
||||
static u_char ctrl_pkt_active[] = {
|
||||
// Eth + IPv4 + TCP
|
||||
0x48, 0x73, 0x97, 0x96, 0x38, 0x10, 0x0c, 0xa7, 0x5c, 0x64, 0x00, 0x01, 0x08, 0x00, 0x45, 0x00,
|
||||
0x00, 0xab, 0x76, 0x23, 0x40, 0x00, 0x7d, 0x06, 0x67, 0x66, 0xc0, 0xa8, 0x29, 0x40, 0x5d, 0xb8,
|
||||
0xd8, 0x22, 0xce, 0xec, 0x00, 0x50, 0xf8, 0x77, 0x0e, 0x1e, 0x47, 0x34, 0x32, 0xb9, 0x50, 0x18,
|
||||
0x04, 0x88, 0x7a, 0xe8, 0x00, 0x00, 0x7b, 0x22, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x22,
|
||||
0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x2c, 0x22, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22,
|
||||
0x3a, 0x22, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22,
|
||||
0x2c, 0x22, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x73, 0x65, 0x72, 0x76,
|
||||
0x69, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x5b, 0x39,
|
||||
0x39, 0x35, 0x31, 0x39, 0x39, 0x5d, 0x7d, 0x2c, 0x22, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
|
||||
0x5f, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x32, 0x39, 0x30, 0x34, 0x38, 0x34, 0x34, 0x39, 0x32, 0x37,
|
||||
0x30, 0x32, 0x35, 0x38, 0x31, 0x37, 0x33, 0x37, 0x22, 0x2c, 0x22, 0x74, 0x73, 0x79, 0x6e, 0x63,
|
||||
0x22, 0x3a, 0x22, 0x31, 0x2e, 0x30, 0x22, 0x7d, 0x00};
|
||||
0x04, 0x88, 0x7a, 0xe8, 0x00, 0x00,
|
||||
// msg payload
|
||||
0x85, 0xA5, 0x74, 0x73, 0x79, 0x6E, 0x63, 0xA3, 0x32, 0x2E, 0x30, 0xAA, 0x73, 0x65, 0x73, 0x73,
|
||||
0x69, 0x6F, 0x6E, 0x5F, 0x69, 0x64, 0xCF, 0x04, 0x08, 0x02, 0x1B, 0x68, 0x4C, 0x03, 0xE9, 0xA5,
|
||||
0x73, 0x74, 0x61, 0x74, 0x65, 0xA6, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0xA6, 0x6D, 0x65, 0x74,
|
||||
0x68, 0x6F, 0x64, 0xAD, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79, 0x5F, 0x75, 0x70, 0x64, 0x61, 0x74,
|
||||
0x65, 0xA6, 0x70, 0x61, 0x72, 0x61, 0x6D, 0x73, 0x81, 0xA3, 0x73, 0x63, 0x65, 0x81, 0xA8, 0x72,
|
||||
0x75, 0x6C, 0x65, 0x5F, 0x69, 0x64, 0x73, 0x91, 0xCE, 0x00, 0x0F, 0x2F, 0x7F};
|
||||
|
||||
// 145 bytes
|
||||
static u_char raw_pkt[] = {
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
#include "gtest_utils.h"
|
||||
|
||||
// 185 bytes
|
||||
// 147 bytes
|
||||
static u_char ctrl_pkt_active[] = {
|
||||
// Eth + IPv4 + TCP
|
||||
0x48, 0x73, 0x97, 0x96, 0x38, 0x10, 0x0c, 0xa7, 0x5c, 0x64, 0x00, 0x01, 0x08, 0x00, 0x45, 0x00,
|
||||
0x00, 0xab, 0x76, 0x23, 0x40, 0x00, 0x7d, 0x06, 0x67, 0x66, 0xc0, 0xa8, 0x29, 0x40, 0x5d, 0xb8,
|
||||
0xd8, 0x22, 0xce, 0xec, 0x00, 0x50, 0xf8, 0x77, 0x0e, 0x1e, 0x47, 0x34, 0x32, 0xb9, 0x50, 0x18,
|
||||
0x04, 0x88, 0x7a, 0xe8, 0x00, 0x00, 0x7b, 0x22, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x22,
|
||||
0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x2c, 0x22, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22,
|
||||
0x3a, 0x22, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22,
|
||||
0x2c, 0x22, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x73, 0x65, 0x72, 0x76,
|
||||
0x69, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x5b, 0x39,
|
||||
0x39, 0x35, 0x31, 0x39, 0x39, 0x5d, 0x7d, 0x2c, 0x22, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
|
||||
0x5f, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x32, 0x39, 0x30, 0x34, 0x38, 0x34, 0x34, 0x39, 0x32, 0x37,
|
||||
0x30, 0x32, 0x35, 0x38, 0x31, 0x37, 0x33, 0x37, 0x22, 0x2c, 0x22, 0x74, 0x73, 0x79, 0x6e, 0x63,
|
||||
0x22, 0x3a, 0x22, 0x31, 0x2e, 0x30, 0x22, 0x7d, 0x00};
|
||||
0x04, 0x88, 0x7a, 0xe8, 0x00, 0x00,
|
||||
// msg payload
|
||||
0x85, 0xA5, 0x74, 0x73, 0x79, 0x6E, 0x63, 0xA3, 0x32, 0x2E, 0x30, 0xAA, 0x73, 0x65, 0x73, 0x73,
|
||||
0x69, 0x6F, 0x6E, 0x5F, 0x69, 0x64, 0xCF, 0x04, 0x08, 0x02, 0x1B, 0x68, 0x4C, 0x03, 0xE9, 0xA5,
|
||||
0x73, 0x74, 0x61, 0x74, 0x65, 0xA6, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0xA6, 0x6D, 0x65, 0x74,
|
||||
0x68, 0x6F, 0x64, 0xAD, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79, 0x5F, 0x75, 0x70, 0x64, 0x61, 0x74,
|
||||
0x65, 0xA6, 0x70, 0x61, 0x72, 0x61, 0x6D, 0x73, 0x81, 0xA3, 0x73, 0x63, 0x65, 0x81, 0xA8, 0x72,
|
||||
0x75, 0x6C, 0x65, 0x5F, 0x69, 0x64, 0x73, 0x91, 0xCE, 0x00, 0x0F, 0x2F, 0x7F};
|
||||
|
||||
// 145 bytes
|
||||
static u_char raw_pkt[] = {
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
#include "gtest_utils.h"
|
||||
|
||||
// 185 bytes
|
||||
// 147 bytes
|
||||
static u_char ctrl_pkt_active[] = {
|
||||
// Eth + IPv4 + TCP
|
||||
0x48, 0x73, 0x97, 0x96, 0x38, 0x10, 0x0c, 0xa7, 0x5c, 0x64, 0x00, 0x01, 0x08, 0x00, 0x45, 0x00,
|
||||
0x00, 0xab, 0x76, 0x23, 0x40, 0x00, 0x7d, 0x06, 0x67, 0x66, 0xc0, 0xa8, 0x29, 0x40, 0x5d, 0xb8,
|
||||
0xd8, 0x22, 0xce, 0xec, 0x00, 0x50, 0xf8, 0x77, 0x0e, 0x1e, 0x47, 0x34, 0x32, 0xb9, 0x50, 0x18,
|
||||
0x04, 0x88, 0x7a, 0xe8, 0x00, 0x00, 0x7b, 0x22, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x22,
|
||||
0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x2c, 0x22, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22,
|
||||
0x3a, 0x22, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22,
|
||||
0x2c, 0x22, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x73, 0x65, 0x72, 0x76,
|
||||
0x69, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x5b, 0x39,
|
||||
0x39, 0x35, 0x31, 0x39, 0x39, 0x5d, 0x7d, 0x2c, 0x22, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
|
||||
0x5f, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x32, 0x39, 0x30, 0x34, 0x38, 0x34, 0x34, 0x39, 0x32, 0x37,
|
||||
0x30, 0x32, 0x35, 0x38, 0x31, 0x37, 0x33, 0x37, 0x22, 0x2c, 0x22, 0x74, 0x73, 0x79, 0x6e, 0x63,
|
||||
0x22, 0x3a, 0x22, 0x31, 0x2e, 0x30, 0x22, 0x7d, 0x00};
|
||||
0x04, 0x88, 0x7a, 0xe8, 0x00, 0x00,
|
||||
// msg payload
|
||||
0x85, 0xA5, 0x74, 0x73, 0x79, 0x6E, 0x63, 0xA3, 0x32, 0x2E, 0x30, 0xAA, 0x73, 0x65, 0x73, 0x73,
|
||||
0x69, 0x6F, 0x6E, 0x5F, 0x69, 0x64, 0xCF, 0x04, 0x08, 0x02, 0x1B, 0x68, 0x4C, 0x03, 0xE9, 0xA5,
|
||||
0x73, 0x74, 0x61, 0x74, 0x65, 0xA6, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0xA6, 0x6D, 0x65, 0x74,
|
||||
0x68, 0x6F, 0x64, 0xAD, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79, 0x5F, 0x75, 0x70, 0x64, 0x61, 0x74,
|
||||
0x65, 0xA6, 0x70, 0x61, 0x72, 0x61, 0x6D, 0x73, 0x81, 0xA3, 0x73, 0x63, 0x65, 0x81, 0xA8, 0x72,
|
||||
0x75, 0x6C, 0x65, 0x5F, 0x69, 0x64, 0x73, 0x91, 0xCE, 0x00, 0x0F, 0x2F, 0x7F};
|
||||
|
||||
// 145 bytes
|
||||
static u_char raw_pkt[] = {
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
#include "gtest_utils.h"
|
||||
|
||||
// 185 bytes
|
||||
// 147 bytes
|
||||
static u_char ctrl_pkt_active[] = {
|
||||
// Eth + IPv4 + TCP
|
||||
0x48, 0x73, 0x97, 0x96, 0x38, 0x10, 0x0c, 0xa7, 0x5c, 0x64, 0x00, 0x01, 0x08, 0x00, 0x45, 0x00,
|
||||
0x00, 0xab, 0x76, 0x23, 0x40, 0x00, 0x7d, 0x06, 0x67, 0x66, 0xc0, 0xa8, 0x29, 0x40, 0x5d, 0xb8,
|
||||
0xd8, 0x22, 0xce, 0xec, 0x00, 0x50, 0xf8, 0x77, 0x0e, 0x1e, 0x47, 0x34, 0x32, 0xb9, 0x50, 0x18,
|
||||
0x04, 0x88, 0x7a, 0xe8, 0x00, 0x00, 0x7b, 0x22, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x22,
|
||||
0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x2c, 0x22, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22,
|
||||
0x3a, 0x22, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22,
|
||||
0x2c, 0x22, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x3a, 0x7b, 0x22, 0x73, 0x65, 0x72, 0x76,
|
||||
0x69, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x5b, 0x39,
|
||||
0x39, 0x35, 0x31, 0x39, 0x39, 0x5d, 0x7d, 0x2c, 0x22, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
|
||||
0x5f, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x32, 0x39, 0x30, 0x34, 0x38, 0x34, 0x34, 0x39, 0x32, 0x37,
|
||||
0x30, 0x32, 0x35, 0x38, 0x31, 0x37, 0x33, 0x37, 0x22, 0x2c, 0x22, 0x74, 0x73, 0x79, 0x6e, 0x63,
|
||||
0x22, 0x3a, 0x22, 0x31, 0x2e, 0x30, 0x22, 0x7d, 0x00};
|
||||
0x04, 0x88, 0x7a, 0xe8, 0x00, 0x00,
|
||||
// msg payload
|
||||
0x85, 0xA5, 0x74, 0x73, 0x79, 0x6E, 0x63, 0xA3, 0x32, 0x2E, 0x30, 0xAA, 0x73, 0x65, 0x73, 0x73,
|
||||
0x69, 0x6F, 0x6E, 0x5F, 0x69, 0x64, 0xCF, 0x04, 0x08, 0x02, 0x1B, 0x68, 0x4C, 0x03, 0xE9, 0xA5,
|
||||
0x73, 0x74, 0x61, 0x74, 0x65, 0xA6, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0xA6, 0x6D, 0x65, 0x74,
|
||||
0x68, 0x6F, 0x64, 0xAD, 0x70, 0x6F, 0x6C, 0x69, 0x63, 0x79, 0x5F, 0x75, 0x70, 0x64, 0x61, 0x74,
|
||||
0x65, 0xA6, 0x70, 0x61, 0x72, 0x61, 0x6D, 0x73, 0x81, 0xA3, 0x73, 0x63, 0x65, 0x81, 0xA8, 0x72,
|
||||
0x75, 0x6C, 0x65, 0x5F, 0x69, 0x64, 0x73, 0x91, 0xCE, 0x00, 0x0F, 0x2F, 0x7F};
|
||||
|
||||
// 145 bytes
|
||||
static u_char raw_pkt[] = {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
============================================================Thu Mar 30 09:36:37 2023============================================================
|
||||
nf_rx_pkt nf_rx_B nf_tx_pkt nf_tx_B endp_rx_pkt endp_rx_B endp_tx_pkt endp_tx_B
|
||||
sum 1 185 1 185 0 0 0 0
|
||||
sum 1 147 1 147 0 0 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
kee_d_rx_pkt kee_d_rx_B kee_d_tx_pkt kee_d_tx_B kee_u_rx_pkt kee_u_rx_B kee_u_rxdop_pkt kee_u_rxdop_B
|
||||
sum 0 0 0 0 0 0 0 0
|
||||
@@ -15,7 +15,7 @@ speed/s 0 0 0 0 0 0
|
||||
sum 0 0 0 0 0 0 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
ctrl_rx_pkt ctrl_rx_B ctrl_tx_pkt ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall
|
||||
sum 1 185 1 185 0 1 0 0
|
||||
sum 1 147 1 147 0 1 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
ctrl_error session_num session_logs sf_active sf_inactive
|
||||
sum 0 1 0 1 0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
============================================================Thu Apr 6 02:12:33 2023============================================================
|
||||
============================================================Fri Apr 28 05:45:07 2023============================================================
|
||||
nf_rx_pkt nf_rx_B nf_tx_pkt nf_tx_B endp_rx_pkt endp_rx_B endp_tx_pkt endp_tx_B
|
||||
sum 1 122 1 122 0 0 0 0
|
||||
sum 1 99 1 99 0 0 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
kee_d_rx_pkt kee_d_rx_B kee_d_tx_pkt kee_d_tx_B kee_u_rx_pkt kee_u_rx_B kee_u_rxdop_pkt kee_u_rxdop_B
|
||||
sum 0 0 0 0 0 0 0 0
|
||||
@@ -15,7 +15,7 @@ speed/s 0 0 0 0 0 0
|
||||
sum 0 0 0 0 0 0 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
ctrl_rx_pkt ctrl_rx_B ctrl_tx_pkt ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall
|
||||
sum 1 122 1 122 1 0 0 0
|
||||
sum 1 99 1 99 1 0 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
ctrl_error session_num session_logs sf_active sf_inactive
|
||||
sum 0 0 0 0 0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
============================================================Fri Apr 7 08:47:52 2023============================================================
|
||||
nf_rx_pkt nf_rx_B nf_tx_pkt nf_tx_B endp_rx_pkt endp_rx_B endp_tx_pkt endp_tx_B
|
||||
sum 2 330 2 330 0 0 0 0
|
||||
sum 2 292 2 292 0 0 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
kee_d_rx_pkt kee_d_rx_B kee_d_tx_pkt kee_d_tx_B kee_u_rx_pkt kee_u_rx_B kee_u_rxdop_pkt kee_u_rxdop_B
|
||||
sum 0 0 0 0 0 0 0 0
|
||||
@@ -15,7 +15,7 @@ speed/s 0 0 0 0 0 0
|
||||
sum 0 0 0 0 0 0 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
ctrl_rx_pkt ctrl_rx_B ctrl_tx_pkt ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall
|
||||
sum 1 185 1 185 0 1 0 0
|
||||
sum 1 147 1 147 0 1 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
ctrl_error session_num session_logs sf_active sf_inactive
|
||||
sum 0 1 0 0 0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
============================================================Fri Apr 7 09:01:03 2023============================================================
|
||||
nf_rx_pkt nf_rx_B nf_tx_pkt nf_tx_B endp_rx_pkt endp_rx_B endp_tx_pkt endp_tx_B
|
||||
sum 2 330 2 330 0 0 0 0
|
||||
sum 2 292 2 292 0 0 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
kee_d_rx_pkt kee_d_rx_B kee_d_tx_pkt kee_d_tx_B kee_u_rx_pkt kee_u_rx_B kee_u_rxdop_pkt kee_u_rxdop_B
|
||||
sum 0 0 0 0 0 0 0 0
|
||||
@@ -15,7 +15,7 @@ speed/s 0 0 0 0 0 0
|
||||
sum 0 0 0 0 0 0 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
ctrl_rx_pkt ctrl_rx_B ctrl_tx_pkt ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall
|
||||
sum 1 185 1 185 0 1 0 0
|
||||
sum 1 147 1 147 0 1 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
ctrl_error session_num session_logs sf_active sf_inactive
|
||||
sum 0 1 0 0 0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
============================================================Fri Apr 7 09:26:07 2023============================================================
|
||||
nf_rx_pkt nf_rx_B nf_tx_pkt nf_tx_B endp_rx_pkt endp_rx_B endp_tx_pkt endp_tx_B
|
||||
sum 2 330 2 330 0 0 1 195
|
||||
sum 2 292 2 292 0 0 1 195
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
kee_d_rx_pkt kee_d_rx_B kee_d_tx_pkt kee_d_tx_B kee_u_rx_pkt kee_u_rx_B kee_u_rxdop_pkt kee_u_rxdop_B
|
||||
sum 0 0 0 0 0 0 0 0
|
||||
@@ -15,7 +15,7 @@ speed/s 0 0 0 0 0 0
|
||||
sum 0 0 0 0 0 0 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
ctrl_rx_pkt ctrl_rx_B ctrl_tx_pkt ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall
|
||||
sum 1 185 1 185 0 1 0 0
|
||||
sum 1 147 1 147 0 1 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
ctrl_error session_num session_logs sf_active sf_inactive
|
||||
sum 0 1 0 1 0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
============================================================Wed Apr 12 07:27:30 2023============================================================
|
||||
nf_rx_pkt nf_rx_B nf_tx_pkt nf_tx_B endp_rx_pkt endp_rx_B endp_tx_pkt endp_tx_B
|
||||
sum 2 330 2 330 1 195 1 195
|
||||
sum 2 292 2 292 1 195 1 195
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
kee_d_rx_pkt kee_d_rx_B kee_d_tx_pkt kee_d_tx_B kee_u_rx_pkt kee_u_rx_B kee_u_rxdop_pkt kee_u_rxdop_B
|
||||
sum 0 0 0 0 0 0 0 0
|
||||
@@ -15,7 +15,7 @@ speed/s 0 0 0 0 0 0
|
||||
sum 0 0 0 0 1 145 1 195
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
ctrl_rx_pkt ctrl_rx_B ctrl_tx_pkt ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall
|
||||
sum 1 185 1 185 0 1 0 0
|
||||
sum 1 147 1 147 0 1 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
ctrl_error session_num session_logs sf_active sf_inactive
|
||||
sum 0 1 0 1 0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
============================================================Thu Apr 6 03:13:22 2023============================================================
|
||||
nf_rx_pkt nf_rx_B nf_tx_pkt nf_tx_B endp_rx_pkt endp_rx_B endp_tx_pkt endp_tx_B
|
||||
sum 2 330 1 185 0 0 0 0
|
||||
sum 2 292 1 147 0 0 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
kee_d_rx_pkt kee_d_rx_B kee_d_tx_pkt kee_d_tx_B kee_u_rx_pkt kee_u_rx_B kee_u_rxdop_pkt kee_u_rxdop_B
|
||||
sum 0 0 0 0 0 0 0 0
|
||||
@@ -15,7 +15,7 @@ speed/s 0 0 0 0 0 0
|
||||
sum 0 0 0 0 0 0 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
ctrl_rx_pkt ctrl_rx_B ctrl_tx_pkt ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall
|
||||
sum 1 185 1 185 0 1 0 0
|
||||
sum 1 147 1 147 0 1 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
ctrl_error session_num session_logs sf_active sf_inactive
|
||||
sum 0 1 0 0 0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
============================================================Thu Apr 6 02:56:08 2023============================================================
|
||||
nf_rx_pkt nf_rx_B nf_tx_pkt nf_tx_B endp_rx_pkt endp_rx_B endp_tx_pkt endp_tx_B
|
||||
sum 2 330 2 330 0 0 0 0
|
||||
sum 2 292 2 292 0 0 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
kee_d_rx_pkt kee_d_rx_B kee_d_tx_pkt kee_d_tx_B kee_u_rx_pkt kee_u_rx_B kee_u_rxdop_pkt kee_u_rxdop_B
|
||||
sum 0 0 0 0 0 0 0 0
|
||||
@@ -15,7 +15,7 @@ speed/s 0 0 0 0 0 0
|
||||
sum 0 0 0 0 0 0 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
ctrl_rx_pkt ctrl_rx_B ctrl_tx_pkt ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall
|
||||
sum 1 185 1 185 0 1 0 0
|
||||
sum 1 147 1 147 0 1 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
ctrl_error session_num session_logs sf_active sf_inactive
|
||||
sum 0 1 0 0 0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
============================================================Thu Apr 6 09:56:11 2023============================================================
|
||||
nf_rx_pkt nf_rx_B nf_tx_pkt nf_tx_B endp_rx_pkt endp_rx_B endp_tx_pkt endp_tx_B
|
||||
sum 2 330 1 185 0 0 1 195
|
||||
sum 2 292 1 147 0 0 1 195
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
kee_d_rx_pkt kee_d_rx_B kee_d_tx_pkt kee_d_tx_B kee_u_rx_pkt kee_u_rx_B kee_u_rxdop_pkt kee_u_rxdop_B
|
||||
sum 0 0 0 0 0 0 0 0
|
||||
@@ -15,7 +15,7 @@ speed/s 0 0 0 0 0 0
|
||||
sum 0 0 0 0 0 0 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
ctrl_rx_pkt ctrl_rx_B ctrl_tx_pkt ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall
|
||||
sum 1 185 1 185 0 1 0 0
|
||||
sum 1 147 1 147 0 1 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
ctrl_error session_num session_logs sf_active sf_inactive
|
||||
sum 0 1 0 1 0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
============================================================Fri Apr 7 10:51:51 2023============================================================
|
||||
nf_rx_pkt nf_rx_B nf_tx_pkt nf_tx_B endp_rx_pkt endp_rx_B endp_tx_pkt endp_tx_B
|
||||
sum 2 330 2 330 1 195 1 195
|
||||
sum 2 292 2 292 1 195 1 195
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
kee_d_rx_pkt kee_d_rx_B kee_d_tx_pkt kee_d_tx_B kee_u_rx_pkt kee_u_rx_B kee_u_rxdop_pkt kee_u_rxdop_B
|
||||
sum 0 0 0 0 0 0 0 0
|
||||
@@ -15,7 +15,7 @@ speed/s 0 0 0 0 0 0
|
||||
sum 0 0 0 0 0 0 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
ctrl_rx_pkt ctrl_rx_B ctrl_tx_pkt ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall
|
||||
sum 1 185 1 185 0 1 0 0
|
||||
sum 1 147 1 147 0 1 0 0
|
||||
speed/s 0 0 0 0 0 0 0 0
|
||||
ctrl_error session_num session_logs sf_active sf_inactive
|
||||
sum 0 1 0 1 0
|
||||
|
||||
Reference in New Issue
Block a user