16 #if (BYTE_ORDER == LITTLE_ENDIAN)
43 #if (BYTE_ORDER == LITTLE_ENDIAN)
63 static_assert(
sizeof(
gre_basic_header) == 4,
"gre_basic_header size is not 4 bytes");
76 static_assert(
sizeof(
gre1_header) == 8,
"gre1_header size is not 8 bytes");
91 static_assert(
sizeof(
ppp_pptp_header) == 4,
"ppp_pptp_header size is not 4 bytes");
143 :
Layer(data, dataLen, prevLayer, packet, protocol)
151 GreChecksumOrRouting = 0,
157 uint8_t* getFieldValue(GreField field,
bool returnOffsetEvenIfFieldMissing)
const;
159 void computeCalculateFieldsInner();
247 static inline bool isDataValid(
const uint8_t* data,
size_t dataLen)
317 static inline bool isDataValid(
const uint8_t* data,
size_t dataLen)
366 static inline bool isDataValid(
const uint8_t* data,
size_t dataLen);
385 return "PPP for PPTP Layer";
Definition: GreLayer.h:167
std::string toString() const override
GREv0Layer()
A constructor that creates a new GREv0 header and allocates the data.
bool getChecksum(uint16_t &checksum)
bool setKey(uint32_t key)
gre_basic_header * getGreHeader() const
Definition: GreLayer.h:190
GREv0Layer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: GreLayer.h:174
bool getKey(uint32_t &key) const
bool getOffset(uint16_t &offset) const
void computeCalculateFields() override
static bool isDataValid(const uint8_t *data, size_t dataLen)
Definition: GreLayer.h:247
bool setChecksum(uint16_t checksum)
Definition: GreLayer.h:265
bool setAcknowledgmentNum(uint32_t ackNum)
static bool isDataValid(const uint8_t *data, size_t dataLen)
Definition: GreLayer.h:317
bool getAcknowledgmentNum(uint32_t &ackNum) const
GREv1Layer(uint16_t callID)
void computeCalculateFields() override
bool unsetAcknowledgmentNum()
std::string toString() const override
gre1_header * getGreHeader() const
Definition: GreLayer.h:290
GREv1Layer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: GreLayer.h:272
Definition: GreLayer.h:97
bool unsetSequenceNumber()
bool getSequenceNumber(uint32_t &seqNumber) const
void parseNextLayer() override
OsiModelLayer getOsiModelLayer() const override
Definition: GreLayer.h:136
bool setSequenceNumber(uint32_t seqNumber)
static ProtocolType getGREVersion(uint8_t *greData, size_t greDataLen)
size_t getHeaderLen() const override
Definition: GreLayer.h:336
size_t getHeaderLen() const override
Definition: GreLayer.h:374
void computeCalculateFields() override
PPP_PPTPLayer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: GreLayer.h:343
static bool isDataValid(const uint8_t *data, size_t dataLen)
Definition: GreLayer.h:394
ppp_pptp_header * getPPP_PPTPHeader() const
Definition: GreLayer.h:357
OsiModelLayer getOsiModelLayer() const override
Definition: GreLayer.h:388
std::string toString() const override
Definition: GreLayer.h:383
PPP_PPTPLayer(uint8_t address, uint8_t control)
void parseNextLayer() override
Currently identifies the following next layers: IPv4Layer, IPv6Layer. Otherwise sets PayloadLayer.
The main namespace for the PcapPlusPlus lib.
uint8_t ProtocolType
Definition: ProtocolType.h:13
const ProtocolType GREv0
GRE version 0 protocol.
Definition: ProtocolType.h:74
const ProtocolType PPP_PPTP
PPP for PPTP protocol.
Definition: ProtocolType.h:83
const ProtocolType GREv1
GRE version 1 protocol.
Definition: ProtocolType.h:77
OsiModelLayer
An enum representing OSI model layers.
Definition: ProtocolType.h:225
@ OsiModelSesionLayer
Session layer (layer 5)
Definition: ProtocolType.h:235
@ OsiModelNetworkLayer
Network layer (layer 3)
Definition: ProtocolType.h:231