解决编译问题

This commit is contained in:
wangmenglan
2024-01-04 16:45:47 +08:00
parent a1f2fde9dd
commit 9ce2d57082
3 changed files with 89 additions and 18 deletions

View File

@@ -1060,7 +1060,6 @@ static void packet_io_send_fake_pkt(struct packet_io_thread_ctx *thread, struct
int raw_traffic_decapsulate(struct packet *handler, const char *raw_data, int raw_len, char **header, int *header_len, int *is_ipv4) int raw_traffic_decapsulate(struct packet *handler, const char *raw_data, int raw_len, char **header, int *header_len, int *is_ipv4)
{ {
const struct layer_record *l2_tun_layer_record = NULL;
const struct layer_record *l3_layer_record = NULL; const struct layer_record *l3_layer_record = NULL;
const struct layer_record *l4_layer_record = NULL; const struct layer_record *l4_layer_record = NULL;
@@ -1076,8 +1075,6 @@ int raw_traffic_decapsulate(struct packet *handler, const char *raw_data, int ra
return -1; return -1;
*is_ipv4 = l3_layer_record->type == LAYER_TYPE_IPV4 ? 1 : 0; *is_ipv4 = l3_layer_record->type == LAYER_TYPE_IPV4 ? 1 : 0;
l2_tun_layer_record = packet_get_innermost_layer(handler, LAYER_TYPE_L2_TUN);
*header_len = l3_layer_record->hdr_offset; *header_len = l3_layer_record->hdr_offset;
*header = (char *)calloc(*header_len, sizeof(char)); *header = (char *)calloc(*header_len, sizeof(char));
memcpy(*header, raw_data, *header_len); memcpy(*header, raw_data, *header_len);

View File

@@ -26,9 +26,9 @@ target_link_libraries(gtest_session_table common gtest)
# gtest_raw_packet # gtest_raw_packet
############################################################################### ###############################################################################
#add_executable(gtest_raw_packet test_raw_packet.cpp) add_executable(gtest_raw_packet test_raw_packet.cpp)
#target_include_directories(gtest_raw_packet PUBLIC ${CMAKE_SOURCE_DIR}/common/include) target_include_directories(gtest_raw_packet PUBLIC ${CMAKE_SOURCE_DIR}/common/include)
#target_link_libraries(gtest_raw_packet common gtest) target_link_libraries(gtest_raw_packet common gtest)
############################################################################### ###############################################################################
# gtest_discover_tests # gtest_discover_tests
@@ -38,4 +38,4 @@ include(GoogleTest)
gtest_discover_tests(gtest_addr) gtest_discover_tests(gtest_addr)
gtest_discover_tests(gtest_cmsg) gtest_discover_tests(gtest_cmsg)
gtest_discover_tests(gtest_session_table) gtest_discover_tests(gtest_session_table)
#gtest_discover_tests(gtest_raw_packet) gtest_discover_tests(gtest_raw_packet)

View File

@@ -9,6 +9,45 @@ void *g_packet_io_logger = NULL;
void *g_default_logger = NULL; void *g_default_logger = NULL;
extern int raw_traffic_decapsulate(struct packet *handler, const char *raw_data, int raw_len, char **header, int *header_len, int *is_ipv4); extern int raw_traffic_decapsulate(struct packet *handler, const char *raw_data, int raw_len, char **header, int *header_len, int *is_ipv4);
struct tcp_policy_enforcer
{
int tcp_policy_enforcer;
};
struct tfe_cmsg
{
int tfe_cmsg;
};
int tcp_policy_enforce(struct tcp_policy_enforcer *tcp_enforcer, struct tfe_cmsg *cmsg)
{
return 0;
}
struct chaining_policy_enforcer
{
int chaining_policy_enforcer;
};
void chaining_policy_enforce(struct chaining_policy_enforcer *enforcer, struct tfe_cmsg *cmsg, uint64_t rule_id)
{
return;
}
struct tfe_proxy
{
int tfe_proxy;
};
int tfe_proxy_fds_accept(struct tfe_proxy *ctx, int fd_downstream, int fd_upstream, int fd_fake_c, int fd_fake_s, struct tfe_cmsg *cmsg)
{
return 0;
}
unsigned int tfe_proxy_get_work_thread_count(void)
{
return 0;
}
/****************************************************************************** /******************************************************************************
* Pcap file: 1-ETH_VLAN_VLAN_IP4_IP4_UDP.pcap * Pcap file: 1-ETH_VLAN_VLAN_IP4_IP4_UDP.pcap
* [Protocols in frame: eth:ethertype:vlan:ethertype:vlan:ethertype:ip:ip:udp:data] * [Protocols in frame: eth:ethertype:vlan:ethertype:vlan:ethertype:ip:ip:udp:data]
@@ -193,11 +232,17 @@ TEST(RAW_PACKET, ETH_IP6_IP4_TCP_SSH)
int header_len = 0; int header_len = 0;
int is_ipv4 = 0; int is_ipv4 = 0;
struct packet pkt; struct packet pkt;
unsigned char header_data[] = {
0x00, 0x22, 0x46, 0x36, 0x51, 0x38, 0x00, 0x22, 0x46, 0x36, 0x51, 0x3c, 0x86, 0xdd, 0x60, 0x00, 0x00, 0x00, 0x02, 0xa0, 0x04, 0x40, 0x20, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x92, 0x01, 0x68, 0x00, 0x40, 0x01, 0x34, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x92, 0x01, 0x68, 0x00, 0x40,
0x01, 0x33
};
packet_parse(&pkt, (const char *)data2, sizeof(data2)); packet_parse(&pkt, (const char *)data2, sizeof(data2));
raw_traffic_decapsulate(&pkt, (const char *)data2, sizeof(data2), &header, &header_len, &is_ipv4); raw_traffic_decapsulate(&pkt, (const char *)data2, sizeof(data2), &header, &header_len, &is_ipv4);
EXPECT_TRUE(header == nullptr); EXPECT_TRUE(memcmp(header_data, header, header_len) == 0);
EXPECT_TRUE(header_len == 0); EXPECT_TRUE(header_len == 54);
EXPECT_TRUE(is_ipv4 == 1);
} }
/****************************************************************************** /******************************************************************************
@@ -370,11 +415,16 @@ TEST(RAW_PACKET, ETH_IP4_IP6_TCP)
int header_len = 0; int header_len = 0;
int is_ipv4 = 0; int is_ipv4 = 0;
struct packet pkt; struct packet pkt;
unsigned char header_data[] = {
0x5c, 0x5e, 0xab, 0x2a, 0xa2, 0x00, 0x2c, 0x6b, 0xf5, 0x45, 0x88, 0x29, 0x08, 0x00, 0x45, 0x00, 0x00, 0x5c, 0x0b, 0x4d, 0x00, 0x00, 0x3b, 0x29, 0x09, 0xc8,
0xd2, 0x4d, 0x58, 0xa3, 0x3b, 0x42, 0x04, 0x32
};
packet_parse(&pkt, (const char *)data4, sizeof(data4)); packet_parse(&pkt, (const char *)data4, sizeof(data4));
raw_traffic_decapsulate(&pkt, (const char *)data4, sizeof(data4), &header, &header_len, &is_ipv4); raw_traffic_decapsulate(&pkt, (const char *)data4, sizeof(data4), &header, &header_len, &is_ipv4);
EXPECT_TRUE(header == nullptr); EXPECT_TRUE(memcmp(header_data, header, header_len) == 0);
EXPECT_TRUE(header_len == 0); EXPECT_TRUE(header_len == 34);
EXPECT_TRUE(is_ipv4 == 0);
} }
/****************************************************************************** /******************************************************************************
@@ -501,11 +551,15 @@ TEST(RAW_PACKET, ETH_MPLS_IP4_TCP)
int header_len = 0; int header_len = 0;
int is_ipv4 = 0; int is_ipv4 = 0;
struct packet pkt; struct packet pkt;
unsigned char header_data[] = {
0xd4, 0x6a, 0xa8, 0x7f, 0xeb, 0xf7, 0x00, 0x23, 0x89, 0xd9, 0x28, 0xcc, 0x88, 0x47, 0x00, 0x01, 0x2d, 0xfe
};
packet_parse(&pkt, (const char *)data6, sizeof(data6)); packet_parse(&pkt, (const char *)data6, sizeof(data6));
raw_traffic_decapsulate(&pkt, (const char *)data6, sizeof(data6), &header, &header_len, &is_ipv4); raw_traffic_decapsulate(&pkt, (const char *)data6, sizeof(data6), &header, &header_len, &is_ipv4);
EXPECT_TRUE(header != nullptr); EXPECT_TRUE(memcmp(header_data, header, header_len) == 0);
EXPECT_TRUE(header_len == 18); EXPECT_TRUE(header_len == 18);
EXPECT_TRUE(is_ipv4 == 1);
} }
/****************************************************************************** /******************************************************************************
@@ -575,11 +629,15 @@ TEST(RAW_PACKET, ETH_MPLS_MPLS_IP4_TCP)
int header_len = 0; int header_len = 0;
int is_ipv4 = 0; int is_ipv4 = 0;
struct packet pkt; struct packet pkt;
unsigned char header_data[] = {
0x00, 0x30, 0x96, 0xe6, 0xfc, 0x39, 0x00, 0x30, 0x96, 0x05, 0x28, 0x38, 0x88, 0x47, 0x00, 0x01, 0x2a, 0xff, 0x00, 0x01, 0x0b, 0xff
};
packet_parse(&pkt, (const char *)data7, sizeof(data7)); packet_parse(&pkt, (const char *)data7, sizeof(data7));
raw_traffic_decapsulate(&pkt, (const char *)data7, sizeof(data7), &header, &header_len, &is_ipv4); raw_traffic_decapsulate(&pkt, (const char *)data7, sizeof(data7), &header, &header_len, &is_ipv4);
EXPECT_TRUE(header != nullptr); EXPECT_TRUE(memcmp(header_data, header, header_len) == 0);
EXPECT_TRUE(header_len == 22); EXPECT_TRUE(header_len == 22);
EXPECT_TRUE(is_ipv4 == 1);
} }
/****************************************************************************** /******************************************************************************
@@ -654,11 +712,15 @@ TEST(RAW_PACKET, ETH_VLAN_PPPOE_IP4_TCP)
int header_len = 0; int header_len = 0;
int is_ipv4 = 0; int is_ipv4 = 0;
struct packet pkt; struct packet pkt;
unsigned char header_data[] = {
0x18, 0x10, 0x04, 0x00, 0x02, 0x27, 0x00, 0x00, 0x00, 0x00, 0x04, 0x46, 0x81, 0x00, 0x65, 0xc4, 0x88, 0x64, 0x11, 0x00, 0xb4, 0xbc, 0x00, 0x36, 0x00, 0x21
};
packet_parse(&pkt, (const char *)data8, sizeof(data8)); packet_parse(&pkt, (const char *)data8, sizeof(data8));
raw_traffic_decapsulate(&pkt, (const char *)data8, sizeof(data8), &header, &header_len, &is_ipv4); raw_traffic_decapsulate(&pkt, (const char *)data8, sizeof(data8), &header, &header_len, &is_ipv4);
EXPECT_TRUE(header != nullptr); EXPECT_TRUE(memcmp(header_data, header, header_len) == 0);
EXPECT_TRUE(header_len == 26); EXPECT_TRUE(header_len == 26);
EXPECT_TRUE(is_ipv4 == 1);
} }
/****************************************************************************** /******************************************************************************
@@ -792,11 +854,17 @@ TEST(RAW_PACKET, ETH_IP6_UDP_GTP_IP6_TCP_TLS)
int header_len = 0; int header_len = 0;
int is_ipv4 = 0; int is_ipv4 = 0;
struct packet pkt; struct packet pkt;
unsigned char header_data[] = {
0xac, 0xb3, 0xb5, 0x40, 0xe9, 0xc2, 0x74, 0x4a, 0xa4, 0x0e, 0xf5, 0x40, 0x86, 0xdd, 0x60, 0x00, 0x00, 0x00, 0x05, 0x6c, 0x11, 0x7f, 0x24, 0x09, 0x80, 0x34,
0x40, 0x40, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x05, 0x24, 0x09, 0x80, 0x34, 0x40, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
0x00, 0x61, 0x08, 0x68, 0x08, 0x68, 0x05, 0x6c, 0xeb, 0x00, 0x30, 0xff, 0x05, 0x5c, 0x02, 0x4c, 0x3c, 0xbd
};
packet_parse(&pkt, (const char *)data9, sizeof(data9)); packet_parse(&pkt, (const char *)data9, sizeof(data9));
raw_traffic_decapsulate(&pkt, (const char *)data9, sizeof(data9), &header, &header_len, &is_ipv4); raw_traffic_decapsulate(&pkt, (const char *)data9, sizeof(data9), &header, &header_len, &is_ipv4);
EXPECT_TRUE(header == nullptr); EXPECT_TRUE(memcmp(header_data, header, header_len) == 0);
EXPECT_TRUE(header_len == 0); EXPECT_TRUE(header_len == 70);
EXPECT_TRUE(is_ipv4 == 0);
} }
/****************************************************************************** /******************************************************************************
@@ -937,11 +1005,17 @@ TEST(RAW_PACKET, ETH_IP6_UDP_GTP_IP4_TCP_TLS)
int header_len = 0; int header_len = 0;
int is_ipv4 = 0; int is_ipv4 = 0;
struct packet pkt; struct packet pkt;
unsigned char header_data[] = {
0x74, 0x4a, 0xa4, 0x0e, 0xf5, 0x1c, 0x60, 0xd7, 0x55, 0x62, 0xee, 0x70, 0x86, 0xdd, 0x60, 0x00, 0x00, 0x00, 0x05, 0x88, 0x11, 0xfc, 0x24, 0x09, 0x80, 0x34,
0x40, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x0a, 0x31, 0x24, 0x09, 0x80, 0x34, 0x40, 0x40, 0x53, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x02, 0x04, 0x08, 0x68, 0x08, 0x68, 0x05, 0x88, 0xc8, 0xdf, 0x30, 0xff, 0x05, 0x78, 0x6c, 0x2a, 0x47, 0x53
};
packet_parse(&pkt, (const char *)data10, sizeof(data10)); packet_parse(&pkt, (const char *)data10, sizeof(data10));
raw_traffic_decapsulate(&pkt, (const char *)data10, sizeof(data10), &header, &header_len, &is_ipv4); raw_traffic_decapsulate(&pkt, (const char *)data10, sizeof(data10), &header, &header_len, &is_ipv4);
EXPECT_TRUE(header == nullptr); EXPECT_TRUE(memcmp(header_data, header, header_len) == 0);
EXPECT_TRUE(header_len == 0); EXPECT_TRUE(header_len == 70);
EXPECT_TRUE(is_ipv4 == 1);
} }
/****************************************************************************** /******************************************************************************