Commit 81aa8a82 authored by nikolajev's avatar nikolajev
Browse files

GTP support in PacketDissector

parent 4dafc72f
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -45,6 +45,7 @@ PacketDissector::PacketDissector(const char* psPacket)
   m_ipv6Hdr(0),
   m_ipv6Hdr(0),
   m_tcpHdr(0),
   m_tcpHdr(0),
   m_udpHdr(0),
   m_udpHdr(0),
   m_gtpHdr(0),
   m_payload(0) {
   m_payload(0) {


  m_ethHdr = new EthernetHeader;
  m_ethHdr = new EthernetHeader;
@@ -112,6 +113,7 @@ PacketDissector::~PacketDissector() {
  delete m_ipHdr;
  delete m_ipHdr;
  delete m_tcpHdr;
  delete m_tcpHdr;
  delete m_udpHdr;
  delete m_udpHdr;
  delete m_gtpHdr;
  delete m_payload;
  delete m_payload;
}
}


+18 −1
Original line number Original line Diff line number Diff line
@@ -96,6 +96,21 @@ struct TcpHeader
  unsigned short urgentPointer;    // urgent pointer 
  unsigned short urgentPointer;    // urgent pointer 
};
};


struct GtpHeader{
	unsigned char  pn_flag :1;
	unsigned char  s_flag :1;
	unsigned char  e_flag :1;
	unsigned char  spare :1;
	unsigned char  pt :1;
	unsigned char  version :3;

	unsigned char  messageType;
	unsigned char  length[2];
	unsigned char  teid[4];
	unsigned char  seqNum[2];		//optional
	unsigned char  npduNum;			//optional
	unsigned char  extensionHeader;	//optional
};


#define ETH_TYPE_IP     8
#define ETH_TYPE_IP     8
#define ETH_TYPE_IPv6   0xdd86
#define ETH_TYPE_IPv6   0xdd86
@@ -107,7 +122,8 @@ enum HeaderId {
  e_Ethernet,
  e_Ethernet,
  e_Ip,
  e_Ip,
  e_Tcp,
  e_Tcp,
  e_Udp
  e_Udp,
  e_Gtp
};
};


enum FieldId {
enum FieldId {
@@ -134,6 +150,7 @@ class PacketDissector {
  IpV6Header *m_ipv6Hdr;
  IpV6Header *m_ipv6Hdr;
  UdpHeader *m_udpHdr;
  UdpHeader *m_udpHdr;
  TcpHeader *m_tcpHdr;
  TcpHeader *m_tcpHdr;
  GtpHeader *m_gtpHdr;
  char *m_payload;
  char *m_payload;
};
};