36 lines
662 B
C
36 lines
662 B
C
#ifndef _DECODE_GTP_H
|
|
#define _DECODE_GTP_H
|
|
|
|
#ifdef __cpluscplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
#include "public.h"
|
|
|
|
/* According to 3GPP TS 29.060. */
|
|
typedef struct gtp1_header_s
|
|
{
|
|
uint8_t flags;
|
|
uint8_t type;
|
|
uint16_t length;
|
|
uint32_t tid;
|
|
} __attribute__((packed)) gtp1_header_t;
|
|
|
|
typedef struct gtp_info_s
|
|
{
|
|
gtp1_header_t *hdr;
|
|
uint8_t *payload;
|
|
|
|
uint32_t hdr_len;
|
|
uint32_t payload_len;
|
|
} gtp_info_t;
|
|
|
|
int decode_gtp(gtp_info_t *packet, const uint8_t *data, uint32_t len);
|
|
void dump_gtp_info(uint32_t pkt_id, gtp_info_t *packet);
|
|
|
|
#ifdef __cpluscplus
|
|
}
|
|
#endif
|
|
|
|
#endif |