1 #ifndef PACKETPP_TCP_REASSEMBLY     2 #define PACKETPP_TCP_REASSEMBLY    99     ConnectionData() : srcPort(0), dstPort(0), flowKey(0), startTime(), endTime() {}
   134         : m_Data(tcpData), m_DataLen(tcpDataLength), m_MissingBytes(missingBytes), m_Connection(connData)
   142     const uint8_t* 
getData()
 const { 
return m_Data; }
   169     const uint8_t* m_Data;
   171     size_t m_MissingBytes;
   207     TcpReassemblyConfiguration(
bool removeConnInfo = 
true, uint32_t closedConnectionDelay = 5, uint32_t maxNumToClean = 30, uint32_t maxOutOfOrderFragments = 0) :
   208         removeConnInfo(removeConnInfo), closedConnectionDelay(closedConnectionDelay), maxNumToClean(maxNumToClean), maxOutOfOrderFragments(maxOutOfOrderFragments)
   230         TcpReassemblyConnectionClosedManually
   307     typedef void (*OnTcpMessageReady)(int8_t side, 
const TcpStreamData& tcpData, 
void* userCookie);
   315     typedef void (*OnTcpConnectionStart)(
const ConnectionData& connectionData, 
void* userCookie);
   357     void closeConnection(uint32_t 
flowKey);
   363     void closeAllConnections();
   383     uint32_t purgeClosedConnections(uint32_t maxNumToClean = 0);
   392         TcpFragment() : sequence(0), dataLength(0), data(NULL) {}
   393         ~TcpFragment() { 
delete [] data; }
   396     struct TcpOneSideData
   404         TcpOneSideData() : 
srcPort(0), sequence(0), gotFinOrRst(
false) {}
   407     struct TcpReassemblyData
   412         TcpOneSideData twoSides[2];
   415         TcpReassemblyData() : closed(
false), numOfSides(0), prevSide(-1) {}
   418     typedef std::map<uint32_t, TcpReassemblyData> ConnectionList;
   419     typedef std::map<time_t, std::list<uint32_t> > CleanupList;
   421     OnTcpMessageReady m_OnMessageReadyCallback;
   422     OnTcpConnectionStart m_OnConnStart;
   423     OnTcpConnectionEnd m_OnConnEnd;
   425     ConnectionList m_ConnectionList;
   426     ConnectionInfoList m_ConnectionInfo;
   427     CleanupList m_CleanupList;
   428     bool m_RemoveConnInfo;
   429     uint32_t m_ClosedConnectionDelay;
   430     uint32_t m_MaxNumToClean;
   431     size_t m_MaxOutOfOrderFragments;
   432     time_t m_PurgeTimepoint;
   434     void checkOutOfOrderFragments(TcpReassemblyData* tcpReassemblyData, int8_t sideIndex, 
bool cleanWholeFragList);
   436     void handleFinOrRst(TcpReassemblyData* tcpReassemblyData, int8_t sideIndex, uint32_t 
flowKey);
   440     void insertIntoCleanupList(uint32_t flowKey);
 The main namespace for the PcapPlusPlus lib. 
std::map< uint32_t, ConnectionData > ConnectionInfoList
Definition: TcpReassembly.h:298
Definition: TcpReassembly.h:271
ConnectionData()
Definition: TcpReassembly.h:99
TcpStreamData(const uint8_t *tcpData, size_t tcpDataLength, size_t missingBytes, const ConnectionData &connData)
Definition: TcpReassembly.h:133
const ConnectionInfoList & getConnectionInformation() const
Definition: TcpReassembly.h:369
uint16_t srcPort
Definition: TcpReassembly.h:86
ConnectionEndReason
Definition: TcpReassembly.h:225
const ConnectionData & getConnectionData() const
Definition: TcpReassembly.h:166
timeval endTime
Definition: TcpReassembly.h:94
Definition: TcpReassembly.h:292
IPAddress dstIP
Definition: TcpReassembly.h:84
Definition: TcpReassembly.h:180
Definition: RawPacket.h:252
Definition: TcpReassembly.h:218
Definition: TcpReassembly.h:286
const uint8_t * getData() const
Definition: TcpReassembly.h:142
uint16_t dstPort
Definition: TcpReassembly.h:88
uint32_t closedConnectionDelay
Definition: TcpReassembly.h:188
uint32_t maxNumToClean
Definition: TcpReassembly.h:193
uint32_t maxOutOfOrderFragments
Definition: TcpReassembly.h:198
Definition: TcpReassembly.h:281
ReassemblyStatus
Definition: TcpReassembly.h:236
void setEndTime(const timeval &endTime)
Definition: TcpReassembly.h:111
Definition: TcpReassembly.h:246
uint32_t flowKey
Definition: TcpReassembly.h:90
TcpReassemblyConfiguration(bool removeConnInfo=true, uint32_t closedConnectionDelay=5, uint32_t maxNumToClean=30, uint32_t maxOutOfOrderFragments=0)
Definition: TcpReassembly.h:207
size_t getMissingByteCount() const
Definition: TcpReassembly.h:154
bool removeConnInfo
Definition: TcpReassembly.h:183
Definition: TcpReassembly.h:123
bool isBytesMissing() const
Definition: TcpReassembly.h:160
Definition: TcpReassembly.h:266
timeval startTime
Definition: TcpReassembly.h:92
size_t getDataLength() const
Definition: TcpReassembly.h:148
Definition: TcpReassembly.h:79
Definition: IpAddress.h:278
IPAddress srcIP
Definition: TcpReassembly.h:82
void setStartTime(const timeval &startTime)
Definition: TcpReassembly.h:105
Definition: TcpReassembly.h:276
Definition: TcpReassembly.h:254
Definition: TcpReassembly.h:228
Definition: TcpReassembly.h:260