zeek/src/analyzer/protocol/gtpv1/GTPv1.h
Jon Siwek 2b3c2bd394 Fix reassembly of data w/ sizes beyond 32-bit capacities (BIT-348).
The main change is that reassembly code (e.g. for TCP) now uses
int64/uint64 (signedness is situational) data types in place of int
types in order to support delivering data to analyzers that pass 2GB
thresholds.  There's also changes in logic that accompany the change in
data types, e.g. to fix TCP sequence space arithmetic inconsistencies.

Another significant change is in the Analyzer API: the *Packet and
*Undelivered methods now use a uint64 in place of an int for the
relative sequence space offset parameter.
2014-04-09 13:03:24 -05:00

28 lines
632 B
C++

#ifndef ANALYZER_PROTOCOL_GTPV1_GTPV1_H
#define ANALYZER_PROTOCOL_GTPV1_GTPV1_H
#include "gtpv1_pac.h"
namespace analyzer { namespace gtpv1 {
class GTPv1_Analyzer : public analyzer::Analyzer {
public:
GTPv1_Analyzer(Connection* conn);
virtual ~GTPv1_Analyzer();
virtual void Done();
virtual void DeliverPacket(int len, const u_char* data, bool orig,
uint64 seq, const IP_Hdr* ip, int caplen);
static analyzer::Analyzer* InstantiateAnalyzer(Connection* conn)
{ return new GTPv1_Analyzer(conn); }
protected:
void ExpireTimer(double t);
binpac::GTPv1::GTPv1_Conn* interp;
};
} } // namespace analyzer::*
#endif