feature: add GTP utils, support overwrite message length of GTP header
This commit is contained in:
@@ -248,20 +248,20 @@ TEST(IPV4_REASSEMBLE, PADDING_ORDER)
|
||||
layer = packet_get_innermost_raw_layer(new_pkt, LAYER_PROTO_IPV4);
|
||||
EXPECT_TRUE(layer);
|
||||
struct ip *hdr = (struct ip *)layer->hdr_ptr;
|
||||
EXPECT_TRUE(ipv4_hdr_get_version(hdr) == 4);
|
||||
EXPECT_TRUE(ipv4_hdr_get_hdr_len(hdr) == 20 /* IPv4 */);
|
||||
EXPECT_TRUE(ipv4_hdr_get_tos(hdr) == 0);
|
||||
EXPECT_TRUE(ipv4_hdr_get_total_len(hdr) == 20 /* IPv4 */ + 20 /* TCP */ + 28 /* DATA */);
|
||||
EXPECT_TRUE(ipv4_hdr_get_ipid(hdr) == 0xffff);
|
||||
EXPECT_TRUE(ipv4_hdr_get_flags(hdr) == 0x0);
|
||||
EXPECT_TRUE(ipv4_hdr_get_frag_offset(hdr) == 0);
|
||||
EXPECT_TRUE(ipv4_hdr_get_ttl(hdr) == 127);
|
||||
EXPECT_TRUE(ipv4_hdr_get_proto(hdr) == 6);
|
||||
EXPECT_TRUE(ipv4_hdr_get_checksum(hdr) == 0x6d73); // NOTE this is correct checksum
|
||||
EXPECT_TRUE(ipv4_hdr_get_src_addr(hdr) == 0xc0a82467);
|
||||
EXPECT_TRUE(ipv4_hdr_get_dst_addr(hdr) == 0xc0a82889);
|
||||
EXPECT_TRUE(ipv4_hdr_get_opt_len(hdr) == 0);
|
||||
EXPECT_TRUE(ipv4_hdr_get_opt_data(hdr) == NULL);
|
||||
EXPECT_TRUE(ip4_hdr_get_version(hdr) == 4);
|
||||
EXPECT_TRUE(ip4_hdr_get_hdr_len(hdr) == 20 /* IPv4 */);
|
||||
EXPECT_TRUE(ip4_hdr_get_tos(hdr) == 0);
|
||||
EXPECT_TRUE(ip4_hdr_get_total_len(hdr) == 20 /* IPv4 */ + 20 /* TCP */ + 28 /* DATA */);
|
||||
EXPECT_TRUE(ip4_hdr_get_ipid(hdr) == 0xffff);
|
||||
EXPECT_TRUE(ip4_hdr_get_flags(hdr) == 0x0);
|
||||
EXPECT_TRUE(ip4_hdr_get_frag_offset(hdr) == 0);
|
||||
EXPECT_TRUE(ip4_hdr_get_ttl(hdr) == 127);
|
||||
EXPECT_TRUE(ip4_hdr_get_proto(hdr) == 6);
|
||||
EXPECT_TRUE(ip4_hdr_get_checksum(hdr) == 0x6d73); // NOTE this is correct checksum
|
||||
EXPECT_TRUE(ip4_hdr_get_src_addr(hdr) == 0xc0a82467);
|
||||
EXPECT_TRUE(ip4_hdr_get_dst_addr(hdr) == 0xc0a82889);
|
||||
EXPECT_TRUE(ip4_hdr_get_opt_len(hdr) == 0);
|
||||
EXPECT_TRUE(ip4_hdr_get_opt_data(hdr) == NULL);
|
||||
|
||||
// check TCP
|
||||
layer = packet_get_innermost_raw_layer(new_pkt, LAYER_PROTO_TCP);
|
||||
@@ -343,20 +343,20 @@ TEST(IPV4_REASSEMBLE, PADDING_UNORDER)
|
||||
layer = packet_get_innermost_raw_layer(new_pkt, LAYER_PROTO_IPV4);
|
||||
EXPECT_TRUE(layer);
|
||||
struct ip *hdr = (struct ip *)layer->hdr_ptr;
|
||||
EXPECT_TRUE(ipv4_hdr_get_version(hdr) == 4);
|
||||
EXPECT_TRUE(ipv4_hdr_get_hdr_len(hdr) == 20 /* IPv4 */);
|
||||
EXPECT_TRUE(ipv4_hdr_get_tos(hdr) == 0);
|
||||
EXPECT_TRUE(ipv4_hdr_get_total_len(hdr) == 20 /* IPv4 */ + 20 /* TCP */ + 28 /* DATA */);
|
||||
EXPECT_TRUE(ipv4_hdr_get_ipid(hdr) == 0xffff);
|
||||
EXPECT_TRUE(ipv4_hdr_get_flags(hdr) == 0x0);
|
||||
EXPECT_TRUE(ipv4_hdr_get_frag_offset(hdr) == 0);
|
||||
EXPECT_TRUE(ipv4_hdr_get_ttl(hdr) == 127);
|
||||
EXPECT_TRUE(ipv4_hdr_get_proto(hdr) == 6);
|
||||
EXPECT_TRUE(ipv4_hdr_get_checksum(hdr) == 0x6d73); // NOTE this is correct checksum
|
||||
EXPECT_TRUE(ipv4_hdr_get_src_addr(hdr) == 0xc0a82467);
|
||||
EXPECT_TRUE(ipv4_hdr_get_dst_addr(hdr) == 0xc0a82889);
|
||||
EXPECT_TRUE(ipv4_hdr_get_opt_len(hdr) == 0);
|
||||
EXPECT_TRUE(ipv4_hdr_get_opt_data(hdr) == NULL);
|
||||
EXPECT_TRUE(ip4_hdr_get_version(hdr) == 4);
|
||||
EXPECT_TRUE(ip4_hdr_get_hdr_len(hdr) == 20 /* IPv4 */);
|
||||
EXPECT_TRUE(ip4_hdr_get_tos(hdr) == 0);
|
||||
EXPECT_TRUE(ip4_hdr_get_total_len(hdr) == 20 /* IPv4 */ + 20 /* TCP */ + 28 /* DATA */);
|
||||
EXPECT_TRUE(ip4_hdr_get_ipid(hdr) == 0xffff);
|
||||
EXPECT_TRUE(ip4_hdr_get_flags(hdr) == 0x0);
|
||||
EXPECT_TRUE(ip4_hdr_get_frag_offset(hdr) == 0);
|
||||
EXPECT_TRUE(ip4_hdr_get_ttl(hdr) == 127);
|
||||
EXPECT_TRUE(ip4_hdr_get_proto(hdr) == 6);
|
||||
EXPECT_TRUE(ip4_hdr_get_checksum(hdr) == 0x6d73); // NOTE this is correct checksum
|
||||
EXPECT_TRUE(ip4_hdr_get_src_addr(hdr) == 0xc0a82467);
|
||||
EXPECT_TRUE(ip4_hdr_get_dst_addr(hdr) == 0xc0a82889);
|
||||
EXPECT_TRUE(ip4_hdr_get_opt_len(hdr) == 0);
|
||||
EXPECT_TRUE(ip4_hdr_get_opt_data(hdr) == NULL);
|
||||
|
||||
// check TCP
|
||||
layer = packet_get_innermost_raw_layer(new_pkt, LAYER_PROTO_TCP);
|
||||
@@ -503,20 +503,20 @@ TEST(IPV4_REASSEMBLE, DUP_FIRST_FRAG)
|
||||
layer = packet_get_innermost_raw_layer(new_pkt, LAYER_PROTO_IPV4);
|
||||
EXPECT_TRUE(layer);
|
||||
struct ip *hdr = (struct ip *)layer->hdr_ptr;
|
||||
EXPECT_TRUE(ipv4_hdr_get_version(hdr) == 4);
|
||||
EXPECT_TRUE(ipv4_hdr_get_hdr_len(hdr) == 20 /* IPv4 */);
|
||||
EXPECT_TRUE(ipv4_hdr_get_tos(hdr) == 0);
|
||||
EXPECT_TRUE(ipv4_hdr_get_total_len(hdr) == 20 /* IPv4 */ + 20 /* TCP */ + 28 /* DATA */);
|
||||
EXPECT_TRUE(ipv4_hdr_get_ipid(hdr) == 0xffff);
|
||||
EXPECT_TRUE(ipv4_hdr_get_flags(hdr) == 0x0);
|
||||
EXPECT_TRUE(ipv4_hdr_get_frag_offset(hdr) == 0);
|
||||
EXPECT_TRUE(ipv4_hdr_get_ttl(hdr) == 127);
|
||||
EXPECT_TRUE(ipv4_hdr_get_proto(hdr) == 6);
|
||||
EXPECT_TRUE(ipv4_hdr_get_checksum(hdr) == 0x6d73); // NOTE this is correct checksum
|
||||
EXPECT_TRUE(ipv4_hdr_get_src_addr(hdr) == 0xc0a82467);
|
||||
EXPECT_TRUE(ipv4_hdr_get_dst_addr(hdr) == 0xc0a82889);
|
||||
EXPECT_TRUE(ipv4_hdr_get_opt_len(hdr) == 0);
|
||||
EXPECT_TRUE(ipv4_hdr_get_opt_data(hdr) == NULL);
|
||||
EXPECT_TRUE(ip4_hdr_get_version(hdr) == 4);
|
||||
EXPECT_TRUE(ip4_hdr_get_hdr_len(hdr) == 20 /* IPv4 */);
|
||||
EXPECT_TRUE(ip4_hdr_get_tos(hdr) == 0);
|
||||
EXPECT_TRUE(ip4_hdr_get_total_len(hdr) == 20 /* IPv4 */ + 20 /* TCP */ + 28 /* DATA */);
|
||||
EXPECT_TRUE(ip4_hdr_get_ipid(hdr) == 0xffff);
|
||||
EXPECT_TRUE(ip4_hdr_get_flags(hdr) == 0x0);
|
||||
EXPECT_TRUE(ip4_hdr_get_frag_offset(hdr) == 0);
|
||||
EXPECT_TRUE(ip4_hdr_get_ttl(hdr) == 127);
|
||||
EXPECT_TRUE(ip4_hdr_get_proto(hdr) == 6);
|
||||
EXPECT_TRUE(ip4_hdr_get_checksum(hdr) == 0x6d73); // NOTE this is correct checksum
|
||||
EXPECT_TRUE(ip4_hdr_get_src_addr(hdr) == 0xc0a82467);
|
||||
EXPECT_TRUE(ip4_hdr_get_dst_addr(hdr) == 0xc0a82889);
|
||||
EXPECT_TRUE(ip4_hdr_get_opt_len(hdr) == 0);
|
||||
EXPECT_TRUE(ip4_hdr_get_opt_data(hdr) == NULL);
|
||||
|
||||
// check TCP
|
||||
layer = packet_get_innermost_raw_layer(new_pkt, LAYER_PROTO_TCP);
|
||||
@@ -610,20 +610,20 @@ TEST(IPV4_REASSEMBLE, DUP_LAST_FRAG)
|
||||
layer = packet_get_innermost_raw_layer(new_pkt, LAYER_PROTO_IPV4);
|
||||
EXPECT_TRUE(layer);
|
||||
struct ip *hdr = (struct ip *)layer->hdr_ptr;
|
||||
EXPECT_TRUE(ipv4_hdr_get_version(hdr) == 4);
|
||||
EXPECT_TRUE(ipv4_hdr_get_hdr_len(hdr) == 20 /* IPv4 */);
|
||||
EXPECT_TRUE(ipv4_hdr_get_tos(hdr) == 0);
|
||||
EXPECT_TRUE(ipv4_hdr_get_total_len(hdr) == 20 /* IPv4 */ + 20 /* TCP */ + 28 /* DATA */);
|
||||
EXPECT_TRUE(ipv4_hdr_get_ipid(hdr) == 0xffff);
|
||||
EXPECT_TRUE(ipv4_hdr_get_flags(hdr) == 0x0);
|
||||
EXPECT_TRUE(ipv4_hdr_get_frag_offset(hdr) == 0);
|
||||
EXPECT_TRUE(ipv4_hdr_get_ttl(hdr) == 127);
|
||||
EXPECT_TRUE(ipv4_hdr_get_proto(hdr) == 6);
|
||||
EXPECT_TRUE(ipv4_hdr_get_checksum(hdr) == 0x6d73); // NOTE this is correct checksum
|
||||
EXPECT_TRUE(ipv4_hdr_get_src_addr(hdr) == 0xc0a82467);
|
||||
EXPECT_TRUE(ipv4_hdr_get_dst_addr(hdr) == 0xc0a82889);
|
||||
EXPECT_TRUE(ipv4_hdr_get_opt_len(hdr) == 0);
|
||||
EXPECT_TRUE(ipv4_hdr_get_opt_data(hdr) == NULL);
|
||||
EXPECT_TRUE(ip4_hdr_get_version(hdr) == 4);
|
||||
EXPECT_TRUE(ip4_hdr_get_hdr_len(hdr) == 20 /* IPv4 */);
|
||||
EXPECT_TRUE(ip4_hdr_get_tos(hdr) == 0);
|
||||
EXPECT_TRUE(ip4_hdr_get_total_len(hdr) == 20 /* IPv4 */ + 20 /* TCP */ + 28 /* DATA */);
|
||||
EXPECT_TRUE(ip4_hdr_get_ipid(hdr) == 0xffff);
|
||||
EXPECT_TRUE(ip4_hdr_get_flags(hdr) == 0x0);
|
||||
EXPECT_TRUE(ip4_hdr_get_frag_offset(hdr) == 0);
|
||||
EXPECT_TRUE(ip4_hdr_get_ttl(hdr) == 127);
|
||||
EXPECT_TRUE(ip4_hdr_get_proto(hdr) == 6);
|
||||
EXPECT_TRUE(ip4_hdr_get_checksum(hdr) == 0x6d73); // NOTE this is correct checksum
|
||||
EXPECT_TRUE(ip4_hdr_get_src_addr(hdr) == 0xc0a82467);
|
||||
EXPECT_TRUE(ip4_hdr_get_dst_addr(hdr) == 0xc0a82889);
|
||||
EXPECT_TRUE(ip4_hdr_get_opt_len(hdr) == 0);
|
||||
EXPECT_TRUE(ip4_hdr_get_opt_data(hdr) == NULL);
|
||||
|
||||
// check TCP
|
||||
layer = packet_get_innermost_raw_layer(new_pkt, LAYER_PROTO_TCP);
|
||||
|
||||
Reference in New Issue
Block a user