TSG-18285 TFE的Packet IO模块支持重复流量识别
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
#include <gtest/gtest.h>
|
||||
#include <arpa/inet.h>
|
||||
|
||||
#include "tfe_raw_packet.h"
|
||||
#include "packet.h"
|
||||
#include "tfe_packet_io.h"
|
||||
|
||||
bool g_print_to_stderr = true;
|
||||
void * g_packet_io_logger = NULL;
|
||||
void *g_packet_io_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);
|
||||
|
||||
/******************************************************************************
|
||||
* Pcap file: 1-ETH_VLAN_VLAN_IP4_IP4_UDP.pcap
|
||||
@@ -79,17 +82,15 @@ unsigned char data1[] = {
|
||||
|
||||
TEST(RAW_PACKET, ETH_VLAN_VLAN_IP4_IP4_UDP)
|
||||
{
|
||||
char *header = NULL;
|
||||
int header_len = 0;
|
||||
char *header = NULL;
|
||||
int header_len = 0;
|
||||
int is_ipv4 = 0;
|
||||
struct raw_pkt_parser raw_parser;
|
||||
|
||||
raw_packet_parser_init(&raw_parser,0, LAYER_TYPE_ALL, 8);
|
||||
raw_packet_parser_parse(&raw_parser, (const void *)data1, sizeof(data1), g_packet_io_logger);
|
||||
raw_traffic_decapsulate(&raw_parser, (char *)data1, sizeof(data1), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header == nullptr);
|
||||
EXPECT_TRUE(header_len == 0);
|
||||
struct packet pkt;
|
||||
|
||||
packet_parse(&pkt, (const char *)data1, sizeof(data1));
|
||||
raw_traffic_decapsulate(&pkt, (const char *)data1, sizeof(data1), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header == nullptr);
|
||||
EXPECT_TRUE(header_len == 0);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@@ -188,17 +189,15 @@ unsigned char data2[] = {
|
||||
|
||||
TEST(RAW_PACKET, ETH_IP6_IP4_TCP_SSH)
|
||||
{
|
||||
char *header = NULL;
|
||||
int header_len = 0;
|
||||
char *header = NULL;
|
||||
int header_len = 0;
|
||||
int is_ipv4 = 0;
|
||||
struct raw_pkt_parser raw_parser;
|
||||
|
||||
raw_packet_parser_init(&raw_parser, 0, LAYER_TYPE_ALL, 8);
|
||||
raw_packet_parser_parse(&raw_parser, (const void *)data2, sizeof(data2), g_packet_io_logger);
|
||||
raw_traffic_decapsulate(&raw_parser, (char *)data2, sizeof(data2), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header == nullptr);
|
||||
EXPECT_TRUE(header_len == 0);
|
||||
struct packet pkt;
|
||||
|
||||
packet_parse(&pkt, (const char *)data2, sizeof(data2));
|
||||
raw_traffic_decapsulate(&pkt, (const char *)data2, sizeof(data2), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header == nullptr);
|
||||
EXPECT_TRUE(header_len == 0);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@@ -292,15 +291,14 @@ unsigned char data3[] = {
|
||||
TEST(RAW_PACKET, ETH_VLAN_IP6_IP4_GRE_PPP_IP4_UDP_DNS)
|
||||
{
|
||||
char *header = NULL;
|
||||
int header_len = 0;
|
||||
int header_len = 0;
|
||||
int is_ipv4 = 0;
|
||||
struct raw_pkt_parser raw_parser;
|
||||
struct packet pkt;
|
||||
|
||||
raw_packet_parser_init(&raw_parser,0, LAYER_TYPE_ALL, 8);
|
||||
raw_packet_parser_parse(&raw_parser, (const void *)data3, sizeof(data3), g_packet_io_logger);
|
||||
raw_traffic_decapsulate(&raw_parser, (char *)data3, sizeof(data3), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header == nullptr);
|
||||
EXPECT_TRUE(header_len == 0);
|
||||
packet_parse(&pkt, (const char *)data3, sizeof(data3));
|
||||
raw_traffic_decapsulate(&pkt, (const char *)data3, sizeof(data3), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header == nullptr);
|
||||
EXPECT_TRUE(header_len == 0);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@@ -369,15 +367,14 @@ unsigned char data4[] = {
|
||||
TEST(RAW_PACKET, ETH_IP4_IP6_TCP)
|
||||
{
|
||||
char *header = NULL;
|
||||
int header_len = 0;
|
||||
int header_len = 0;
|
||||
int is_ipv4 = 0;
|
||||
struct raw_pkt_parser raw_parser;
|
||||
struct packet pkt;
|
||||
|
||||
raw_packet_parser_init(&raw_parser,0, LAYER_TYPE_ALL, 8);
|
||||
raw_packet_parser_parse(&raw_parser, (const void *)data4, sizeof(data4), g_packet_io_logger);
|
||||
raw_traffic_decapsulate(&raw_parser, (char *)data4, sizeof(data4), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header == nullptr);
|
||||
EXPECT_TRUE(header_len == 0);
|
||||
packet_parse(&pkt, (const char *)data4, sizeof(data4));
|
||||
raw_traffic_decapsulate(&pkt, (const char *)data4, sizeof(data4), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header == nullptr);
|
||||
EXPECT_TRUE(header_len == 0);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@@ -432,15 +429,14 @@ unsigned char data5[] = {
|
||||
TEST(RAW_PACKET, ETH_IP6_IP6_UDP)
|
||||
{
|
||||
char *header = NULL;
|
||||
int header_len = 0;
|
||||
int header_len = 0;
|
||||
int is_ipv4 = 0;
|
||||
struct raw_pkt_parser raw_parser;
|
||||
struct packet pkt;
|
||||
|
||||
raw_packet_parser_init(&raw_parser,0, LAYER_TYPE_ALL, 8);
|
||||
raw_packet_parser_parse(&raw_parser, (const void *)data5, sizeof(data5), g_packet_io_logger);
|
||||
raw_traffic_decapsulate(&raw_parser, (char *)data5, sizeof(data5), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header == nullptr);
|
||||
EXPECT_TRUE(header_len == 0);
|
||||
packet_parse(&pkt, (const char *)data5, sizeof(data5));
|
||||
raw_traffic_decapsulate(&pkt, (const char *)data5, sizeof(data5), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header == nullptr);
|
||||
EXPECT_TRUE(header_len == 0);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@@ -502,15 +498,14 @@ unsigned char data6[] = {
|
||||
TEST(RAW_PACKET, ETH_MPLS_IP4_TCP)
|
||||
{
|
||||
char *header = NULL;
|
||||
int header_len = 0;
|
||||
int header_len = 0;
|
||||
int is_ipv4 = 0;
|
||||
struct raw_pkt_parser raw_parser;
|
||||
struct packet pkt;
|
||||
|
||||
raw_packet_parser_init(&raw_parser,0, LAYER_TYPE_ALL, 8);
|
||||
raw_packet_parser_parse(&raw_parser, (const void *)data6, sizeof(data6), g_packet_io_logger);
|
||||
raw_traffic_decapsulate(&raw_parser, (char *)data6, sizeof(data6), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header != nullptr);
|
||||
EXPECT_TRUE(header_len == 18);
|
||||
packet_parse(&pkt, (const char *)data6, sizeof(data6));
|
||||
raw_traffic_decapsulate(&pkt, (const char *)data6, sizeof(data6), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header != nullptr);
|
||||
EXPECT_TRUE(header_len == 18);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@@ -577,15 +572,14 @@ unsigned char data7[] = {
|
||||
TEST(RAW_PACKET, ETH_MPLS_MPLS_IP4_TCP)
|
||||
{
|
||||
char *header = NULL;
|
||||
int header_len = 0;
|
||||
int header_len = 0;
|
||||
int is_ipv4 = 0;
|
||||
struct raw_pkt_parser raw_parser;
|
||||
struct packet pkt;
|
||||
|
||||
raw_packet_parser_init(&raw_parser,0, LAYER_TYPE_ALL, 8);
|
||||
raw_packet_parser_parse(&raw_parser, (const void *)data7, sizeof(data7), g_packet_io_logger);
|
||||
raw_traffic_decapsulate(&raw_parser, (char *)data7, sizeof(data7), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header != nullptr);
|
||||
EXPECT_TRUE(header_len == 22);
|
||||
packet_parse(&pkt, (const char *)data7, sizeof(data7));
|
||||
raw_traffic_decapsulate(&pkt, (const char *)data7, sizeof(data7), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header != nullptr);
|
||||
EXPECT_TRUE(header_len == 22);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@@ -657,15 +651,14 @@ unsigned char data8[] = {
|
||||
TEST(RAW_PACKET, ETH_VLAN_PPPOE_IP4_TCP)
|
||||
{
|
||||
char *header = NULL;
|
||||
int header_len = 0;
|
||||
int header_len = 0;
|
||||
int is_ipv4 = 0;
|
||||
struct raw_pkt_parser raw_parser;
|
||||
struct packet pkt;
|
||||
|
||||
raw_packet_parser_init(&raw_parser,0, LAYER_TYPE_ALL, 8);
|
||||
raw_packet_parser_parse(&raw_parser, (const void *)data8, sizeof(data8), g_packet_io_logger);
|
||||
raw_traffic_decapsulate(&raw_parser, (char *)data8, sizeof(data8), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header != nullptr);
|
||||
EXPECT_TRUE(header_len == 26);
|
||||
packet_parse(&pkt, (const char *)data8, sizeof(data8));
|
||||
raw_traffic_decapsulate(&pkt, (const char *)data8, sizeof(data8), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header != nullptr);
|
||||
EXPECT_TRUE(header_len == 26);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@@ -796,15 +789,14 @@ unsigned char data9[] = {
|
||||
TEST(RAW_PACKET, ETH_IP6_UDP_GTP_IP6_TCP_TLS)
|
||||
{
|
||||
char *header = NULL;
|
||||
int header_len = 0;
|
||||
int header_len = 0;
|
||||
int is_ipv4 = 0;
|
||||
struct raw_pkt_parser raw_parser;
|
||||
struct packet pkt;
|
||||
|
||||
raw_packet_parser_init(&raw_parser,0, LAYER_TYPE_ALL, 8);
|
||||
raw_packet_parser_parse(&raw_parser, (const void *)data9, sizeof(data9), g_packet_io_logger);
|
||||
raw_traffic_decapsulate(&raw_parser, (char *)data9, sizeof(data9), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header == nullptr);
|
||||
EXPECT_TRUE(header_len == 0);
|
||||
packet_parse(&pkt, (const char *)data9, sizeof(data9));
|
||||
raw_traffic_decapsulate(&pkt, (const char *)data9, sizeof(data9), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header == nullptr);
|
||||
EXPECT_TRUE(header_len == 0);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@@ -942,15 +934,14 @@ unsigned char data10[] = {
|
||||
TEST(RAW_PACKET, ETH_IP6_UDP_GTP_IP4_TCP_TLS)
|
||||
{
|
||||
char *header = NULL;
|
||||
int header_len = 0;
|
||||
int header_len = 0;
|
||||
int is_ipv4 = 0;
|
||||
struct raw_pkt_parser raw_parser;
|
||||
struct packet pkt;
|
||||
|
||||
raw_packet_parser_init(&raw_parser,0, LAYER_TYPE_ALL, 8);
|
||||
raw_packet_parser_parse(&raw_parser, (const void *)data10, sizeof(data10), g_packet_io_logger);
|
||||
raw_traffic_decapsulate(&raw_parser, (char *)data10, sizeof(data10), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header == nullptr);
|
||||
EXPECT_TRUE(header_len == 0);
|
||||
packet_parse(&pkt, (const char *)data10, sizeof(data10));
|
||||
raw_traffic_decapsulate(&pkt, (const char *)data10, sizeof(data10), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header == nullptr);
|
||||
EXPECT_TRUE(header_len == 0);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@@ -1030,15 +1021,14 @@ unsigned char data11[] = {
|
||||
TEST(RAW_PACKET, ETH_IP4_UDP_VXLAN_ETH_IP4_UDP_DNS)
|
||||
{
|
||||
char *header = NULL;
|
||||
int header_len = 0;
|
||||
int header_len = 0;
|
||||
int is_ipv4 = 0;
|
||||
struct raw_pkt_parser raw_parser;
|
||||
struct packet pkt;
|
||||
|
||||
raw_packet_parser_init(&raw_parser,0, LAYER_TYPE_ALL, 8);
|
||||
raw_packet_parser_parse(&raw_parser, (const void *)data11, sizeof(data11), g_packet_io_logger);
|
||||
raw_traffic_decapsulate(&raw_parser, (char *)data11, sizeof(data11), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header == nullptr);
|
||||
EXPECT_TRUE(header_len == 0);
|
||||
packet_parse(&pkt, (const char *)data11, sizeof(data11));
|
||||
raw_traffic_decapsulate(&pkt, (const char *)data11, sizeof(data11), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header == nullptr);
|
||||
EXPECT_TRUE(header_len == 0);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@@ -1080,15 +1070,14 @@ unsigned char data12[] = {
|
||||
TEST(RAW_PACKET, ETH_MPLS_MPLS_PWETHCW_ETH_ARP)
|
||||
{
|
||||
char *header = NULL;
|
||||
int header_len = 0;
|
||||
int header_len = 0;
|
||||
int is_ipv4 = 0;
|
||||
struct raw_pkt_parser raw_parser;
|
||||
struct packet pkt;
|
||||
|
||||
raw_packet_parser_init(&raw_parser,0, LAYER_TYPE_ALL, 8);
|
||||
raw_packet_parser_parse(&raw_parser, (const void *)data12, sizeof(data12), g_packet_io_logger);
|
||||
raw_traffic_decapsulate(&raw_parser, (char *)data12, sizeof(data12), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header == nullptr);
|
||||
EXPECT_TRUE(header_len == 0);
|
||||
packet_parse(&pkt, (const char *)data12, sizeof(data12));
|
||||
raw_traffic_decapsulate(&pkt, (const char *)data12, sizeof(data12), &header, &header_len, &is_ipv4);
|
||||
EXPECT_TRUE(header == nullptr);
|
||||
EXPECT_TRUE(header_len == 0);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
|
||||
Reference in New Issue
Block a user