feature: add GTP utils, support overwrite message length of GTP header
This commit is contained in:
@@ -4,8 +4,8 @@
|
||||
#include "tuple.h"
|
||||
#include "tcp_utils.h"
|
||||
#include "udp_utils.h"
|
||||
#include "ipv4_utils.h"
|
||||
#include "ipv6_utils.h"
|
||||
#include "ip4_utils.h"
|
||||
#include "ip6_utils.h"
|
||||
#include "packet_def.h"
|
||||
#include "packet_utils.h"
|
||||
|
||||
@@ -145,16 +145,16 @@ int packet_get_innermost_tuple2(const struct packet *pkt, struct tuple2 *tuple)
|
||||
{
|
||||
const struct ip *ip4_hdr = (const struct ip *)layer->hdr_ptr;
|
||||
tuple->ip_type = IP_TYPE_V4;
|
||||
tuple->src_addr.v4 = ipv4_hdr_get_src_in_addr(ip4_hdr);
|
||||
tuple->dst_addr.v4 = ipv4_hdr_get_dst_in_addr(ip4_hdr);
|
||||
tuple->src_addr.v4 = ip4_hdr_get_src_in_addr(ip4_hdr);
|
||||
tuple->dst_addr.v4 = ip4_hdr_get_dst_in_addr(ip4_hdr);
|
||||
return 0;
|
||||
}
|
||||
if (layer->proto == LAYER_PROTO_IPV6)
|
||||
{
|
||||
const struct ip6_hdr *ip6_hdr = (const struct ip6_hdr *)layer->hdr_ptr;
|
||||
tuple->ip_type = IP_TYPE_V6;
|
||||
tuple->src_addr.v6 = ipv6_hdr_get_src_in6_addr(ip6_hdr);
|
||||
tuple->dst_addr.v6 = ipv6_hdr_get_dst_in6_addr(ip6_hdr);
|
||||
tuple->src_addr.v6 = ip6_hdr_get_src_in6_addr(ip6_hdr);
|
||||
tuple->dst_addr.v6 = ip6_hdr_get_dst_in6_addr(ip6_hdr);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -177,16 +177,16 @@ int packet_get_outermost_tuple2(const struct packet *pkt, struct tuple2 *tuple)
|
||||
{
|
||||
const struct ip *ip4_hdr = (const struct ip *)layer->hdr_ptr;
|
||||
tuple->ip_type = IP_TYPE_V4;
|
||||
tuple->src_addr.v4 = ipv4_hdr_get_src_in_addr(ip4_hdr);
|
||||
tuple->dst_addr.v4 = ipv4_hdr_get_dst_in_addr(ip4_hdr);
|
||||
tuple->src_addr.v4 = ip4_hdr_get_src_in_addr(ip4_hdr);
|
||||
tuple->dst_addr.v4 = ip4_hdr_get_dst_in_addr(ip4_hdr);
|
||||
return 0;
|
||||
}
|
||||
if (layer->proto == LAYER_PROTO_IPV6)
|
||||
{
|
||||
const struct ip6_hdr *ip6_hdr = (const struct ip6_hdr *)layer->hdr_ptr;
|
||||
tuple->ip_type = IP_TYPE_V6;
|
||||
tuple->src_addr.v6 = ipv6_hdr_get_src_in6_addr(ip6_hdr);
|
||||
tuple->dst_addr.v6 = ipv6_hdr_get_dst_in6_addr(ip6_hdr);
|
||||
tuple->src_addr.v6 = ip6_hdr_get_src_in6_addr(ip6_hdr);
|
||||
tuple->dst_addr.v6 = ip6_hdr_get_dst_in6_addr(ip6_hdr);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -230,8 +230,8 @@ int packet_get_innermost_tuple4(const struct packet *pkt, struct tuple4 *tuple)
|
||||
{
|
||||
const struct ip *ip4_hdr = (const struct ip *)layer->hdr_ptr;
|
||||
tuple->ip_type = IP_TYPE_V4;
|
||||
tuple->src_addr.v4 = ipv4_hdr_get_src_in_addr(ip4_hdr);
|
||||
tuple->dst_addr.v4 = ipv4_hdr_get_dst_in_addr(ip4_hdr);
|
||||
tuple->src_addr.v4 = ip4_hdr_get_src_in_addr(ip4_hdr);
|
||||
tuple->dst_addr.v4 = ip4_hdr_get_dst_in_addr(ip4_hdr);
|
||||
layer_l3 = layer;
|
||||
break;
|
||||
}
|
||||
@@ -239,8 +239,8 @@ int packet_get_innermost_tuple4(const struct packet *pkt, struct tuple4 *tuple)
|
||||
{
|
||||
const struct ip6_hdr *ip6_hdr = (const struct ip6_hdr *)layer->hdr_ptr;
|
||||
tuple->ip_type = IP_TYPE_V6;
|
||||
tuple->src_addr.v6 = ipv6_hdr_get_src_in6_addr(ip6_hdr);
|
||||
tuple->dst_addr.v6 = ipv6_hdr_get_dst_in6_addr(ip6_hdr);
|
||||
tuple->src_addr.v6 = ip6_hdr_get_src_in6_addr(ip6_hdr);
|
||||
tuple->dst_addr.v6 = ip6_hdr_get_dst_in6_addr(ip6_hdr);
|
||||
layer_l3 = layer;
|
||||
break;
|
||||
}
|
||||
@@ -274,8 +274,8 @@ int packet_get_outermost_tuple4(const struct packet *pkt, struct tuple4 *tuple)
|
||||
{
|
||||
const struct ip *ip4_hdr = (const struct ip *)layer->hdr_ptr;
|
||||
tuple->ip_type = IP_TYPE_V4;
|
||||
tuple->src_addr.v4 = ipv4_hdr_get_src_in_addr(ip4_hdr);
|
||||
tuple->dst_addr.v4 = ipv4_hdr_get_dst_in_addr(ip4_hdr);
|
||||
tuple->src_addr.v4 = ip4_hdr_get_src_in_addr(ip4_hdr);
|
||||
tuple->dst_addr.v4 = ip4_hdr_get_dst_in_addr(ip4_hdr);
|
||||
layer_l3 = layer;
|
||||
continue;
|
||||
}
|
||||
@@ -283,8 +283,8 @@ int packet_get_outermost_tuple4(const struct packet *pkt, struct tuple4 *tuple)
|
||||
{
|
||||
const struct ip6_hdr *ip6_hdr = (const struct ip6_hdr *)layer->hdr_ptr;
|
||||
tuple->ip_type = IP_TYPE_V6;
|
||||
tuple->src_addr.v6 = ipv6_hdr_get_src_in6_addr(ip6_hdr);
|
||||
tuple->dst_addr.v6 = ipv6_hdr_get_dst_in6_addr(ip6_hdr);
|
||||
tuple->src_addr.v6 = ip6_hdr_get_src_in6_addr(ip6_hdr);
|
||||
tuple->dst_addr.v6 = ip6_hdr_get_dst_in6_addr(ip6_hdr);
|
||||
layer_l3 = layer;
|
||||
continue;
|
||||
}
|
||||
@@ -356,8 +356,8 @@ int packet_get_innermost_tuple6(const struct packet *pkt, struct tuple6 *tuple)
|
||||
{
|
||||
const struct ip *ip4_hdr = (const struct ip *)layer->hdr_ptr;
|
||||
tuple->ip_type = IP_TYPE_V4;
|
||||
tuple->src_addr.v4 = ipv4_hdr_get_src_in_addr(ip4_hdr);
|
||||
tuple->dst_addr.v4 = ipv4_hdr_get_dst_in_addr(ip4_hdr);
|
||||
tuple->src_addr.v4 = ip4_hdr_get_src_in_addr(ip4_hdr);
|
||||
tuple->dst_addr.v4 = ip4_hdr_get_dst_in_addr(ip4_hdr);
|
||||
layer_l3 = layer;
|
||||
break;
|
||||
}
|
||||
@@ -365,8 +365,8 @@ int packet_get_innermost_tuple6(const struct packet *pkt, struct tuple6 *tuple)
|
||||
{
|
||||
const struct ip6_hdr *ip6_hdr = (const struct ip6_hdr *)layer->hdr_ptr;
|
||||
tuple->ip_type = IP_TYPE_V6;
|
||||
tuple->src_addr.v6 = ipv6_hdr_get_src_in6_addr(ip6_hdr);
|
||||
tuple->dst_addr.v6 = ipv6_hdr_get_dst_in6_addr(ip6_hdr);
|
||||
tuple->src_addr.v6 = ip6_hdr_get_src_in6_addr(ip6_hdr);
|
||||
tuple->dst_addr.v6 = ip6_hdr_get_dst_in6_addr(ip6_hdr);
|
||||
layer_l3 = layer;
|
||||
break;
|
||||
}
|
||||
@@ -401,8 +401,8 @@ int packet_get_outermost_tuple6(const struct packet *pkt, struct tuple6 *tuple)
|
||||
{
|
||||
const struct ip *ip4_hdr = (const struct ip *)layer->hdr_ptr;
|
||||
tuple->ip_type = IP_TYPE_V4;
|
||||
tuple->src_addr.v4 = ipv4_hdr_get_src_in_addr(ip4_hdr);
|
||||
tuple->dst_addr.v4 = ipv4_hdr_get_dst_in_addr(ip4_hdr);
|
||||
tuple->src_addr.v4 = ip4_hdr_get_src_in_addr(ip4_hdr);
|
||||
tuple->dst_addr.v4 = ip4_hdr_get_dst_in_addr(ip4_hdr);
|
||||
layer_l3 = layer;
|
||||
continue;
|
||||
}
|
||||
@@ -410,8 +410,8 @@ int packet_get_outermost_tuple6(const struct packet *pkt, struct tuple6 *tuple)
|
||||
{
|
||||
const struct ip6_hdr *ip6_hdr = (const struct ip6_hdr *)layer->hdr_ptr;
|
||||
tuple->ip_type = IP_TYPE_V6;
|
||||
tuple->src_addr.v6 = ipv6_hdr_get_src_in6_addr(ip6_hdr);
|
||||
tuple->dst_addr.v6 = ipv6_hdr_get_dst_in6_addr(ip6_hdr);
|
||||
tuple->src_addr.v6 = ip6_hdr_get_src_in6_addr(ip6_hdr);
|
||||
tuple->dst_addr.v6 = ip6_hdr_get_dst_in6_addr(ip6_hdr);
|
||||
layer_l3 = layer;
|
||||
continue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user