PcapPlusPlus  Next
pcpp::WinDivertRawPacket Class Reference

A RawPacket specialization used by WinDivertDevice. More...

#include <WinDivertDevice.h>

Inheritance diagram for pcpp::WinDivertRawPacket:
pcpp::RawPacket

Public Member Functions

uint32_t getInterfaceIndex () const
 Get the Windows interface index the packet was captured on. More...
 
uint64_t getWinDivertTimestamp () const
 Get the original WinDivert timestamp captured for this packet. More...
 
- Public Member Functions inherited from pcpp::RawPacket
 RawPacket ()=default
 
 RawPacket (const uint8_t *pRawData, int rawDataLen, timeval timestamp, bool takeOwnership, LinkLayerType layerType=LINKTYPE_ETHERNET)
 
 RawPacket (const uint8_t *pRawData, int rawDataLen, timespec timestamp, bool takeOwnership, LinkLayerType layerType=LINKTYPE_ETHERNET)
 
virtual ~RawPacket ()
 A destructor for this class. Frees the raw data if takeOwnership was set to 'true'.
 
 RawPacket (const RawPacket &other)
 
RawPacketoperator= (const RawPacket &other)
 
virtual RawPacketclone () const
 Clones the current packet. Caller is responsible for deallocation of the memory. More...
 
virtual uint8_t getObjectType () const
 
bool setRawData (const uint8_t *pRawData, int rawDataLen, timeval timestamp, LinkLayerType layerType=LINKTYPE_ETHERNET, int frameLength=-1)
 
bool setRawData (const uint8_t *pRawData, int rawDataLen, bool takeOwnership, timeval timestamp, LinkLayerType layerType=LINKTYPE_ETHERNET, int frameLength=-1)
 Assign a buffer to use as raw data. More...
 
bool setRawData (const uint8_t *pRawData, int rawDataLen, timespec timestamp, LinkLayerType layerType=LINKTYPE_ETHERNET, int frameLength=-1)
 
bool setRawData (const uint8_t *pRawData, int rawDataLen, bool takeOwnership, timespec timestamp, LinkLayerType layerType=LINKTYPE_ETHERNET, int frameLength=-1)
 Assign a buffer to use as raw data. More...
 
bool initWithRawData (const uint8_t *pRawData, int rawDataLen, timespec timestamp, LinkLayerType layerType=LINKTYPE_ETHERNET)
 
const uint8_t * getRawData () const
 
LinkLayerType getLinkLayerType () const
 
int getRawDataLen () const
 
int getFrameLength () const
 
timespec getPacketTimeStamp () const
 
virtual bool setPacketTimeStamp (timeval timestamp)
 
virtual bool setPacketTimeStamp (timespec timestamp)
 
bool isPacketSet () const
 
virtual void clear ()
 
virtual void appendData (const uint8_t *dataToAppend, size_t dataToAppendLen)
 
virtual void insertData (int atIndex, const uint8_t *dataToInsert, size_t dataToInsertLen)
 
virtual bool removeData (int atIndex, size_t numOfBytesToRemove)
 
virtual bool reallocateData (size_t newBufferLength)
 

Additional Inherited Members

- Static Public Member Functions inherited from pcpp::RawPacket
static bool isLinkTypeValid (int linkTypeValue)
 

Detailed Description

A RawPacket specialization used by WinDivertDevice.

In addition to the base RawPacket data (raw buffer, timestamp and link-layer type), WinDivert also provides the Windows network interface index and the original WinDivert timestamp. These can be retrieved with getInterfaceIndex() and getWinDivertTimestamp() respectively.

Member Function Documentation

◆ getInterfaceIndex()

uint32_t pcpp::WinDivertRawPacket::getInterfaceIndex ( ) const
inline

Get the Windows interface index the packet was captured on.

Returns
The interface index as reported by WinDivert.

◆ getWinDivertTimestamp()

uint64_t pcpp::WinDivertRawPacket::getWinDivertTimestamp ( ) const
inline

Get the original WinDivert timestamp captured for this packet.

Returns
A 64-bit timestamp value as returned by WinDivert (see WinDivert docs for units and origin).