解决编译问题
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
|||||||
Reference in New Issue
Block a user