|
PcapPlusPlus
Next
|
#include <GreLayer.h>
Classes | |
| struct | SerializedFields |
Public Member Functions | |
| bool | getSequenceNumber (uint32_t &seqNumber) const |
| bool | setSequenceNumber (uint32_t seqNumber) |
| bool | unsetSequenceNumber () |
| void | parseNextLayer () override |
| size_t | getHeaderLen () const override |
| OsiModelLayer | getOsiModelLayer () const override |
Public Member Functions inherited from pcpp::Layer | |
| ~Layer () override | |
| Layer * | getNextLayer () const |
| Layer * | getPrevLayer () const |
| ProtocolType | getProtocol () const |
| bool | isMemberOfProtocolFamily (ProtocolTypeFamily protocolTypeFamily) const |
| uint8_t * | getData () const |
| size_t | getDataLen () const |
| uint8_t * | getLayerPayload () const |
| size_t | getLayerPayloadSize () const |
| bool | isAllocatedToPacket () const |
| void | copyData (uint8_t *toArr) const |
| Copy the raw data of this layer to another array. More... | |
| size_t | copyData (uint8_t *dest, size_t destSize) const |
| Copy the raw data of this layer to another array, with a specified maximum size. More... | |
| void | serialize (ISerializer &serializer) const |
| uint8_t * | getDataPtr (size_t offset=0) const override |
| virtual void | computeCalculateFields ()=0 |
| Each layer can compute field values automatically using this method. This is an abstract method. | |
| virtual std::string | toString () const =0 |
Static Public Member Functions | |
| static ProtocolType | getGREVersion (uint8_t *greData, size_t greDataLen) |
Protected Member Functions | |
| void | serializeLayer (ObjectScope &serializer) const override |
Protected Member Functions inherited from pcpp::Layer | |
| Packet * | getAttachedPacket () |
| Get a pointer to the Packet this layer is attached to (if any). More... | |
| Packet const * | getAttachedPacket () const |
| Get a pointer to the Packet this layer is attached to (if any). More... | |
| void | allocData (size_t dataLen, bool zeroInit=true) |
| Requests the layer to allocate a new data buffer of the specified length. More... | |
| template<typename T , typename... Args> | |
| Layer * | constructNextLayer (uint8_t *data, size_t dataLen, Args &&... extraArgs) |
| Construct the next layer in the protocol stack. No validation is performed on the data. More... | |
| template<typename T , typename... Args> | |
| Layer * | constructNextLayer (uint8_t *data, size_t dataLen, Packet *packet, Args &&... extraArgs) |
| template<typename TFactory , typename... Args> | |
| Layer * | constructNextLayerFromFactory (TFactory factoryFn, uint8_t *data, size_t dataLen, Args &&... extraArgs) |
| Construct the next layer in the protocol stack using a factory functor. More... | |
| template<typename TFactory , typename... Args> | |
| Layer * | constructNextLayerFromFactory (TFactory factoryFn, uint8_t *data, size_t dataLen, Packet *packet, Args &&... extraArgs) |
| Construct the next layer in the protocol stack using a factory functor. More... | |
| template<typename T , typename... Args> | |
| Layer * | tryConstructNextLayer (uint8_t *data, size_t dataLen, Args &&... extraArgs) |
| template<typename T , typename... Args> | |
| Layer * | tryConstructNextLayer (uint8_t *data, size_t dataLen, Packet *packet, Args &&... extraArgs) |
| template<typename T , typename TFallback , typename... Args> | |
| Layer * | tryConstructNextLayerWithFallback (uint8_t *data, size_t dataLen, Args &&... extraArgs) |
| Try to construct the next layer in the protocol stack with a fallback option. More... | |
| template<typename T , typename TFallback , typename... Args> | |
| Layer * | tryConstructNextLayerWithFallback (uint8_t *data, size_t dataLen, Packet *packet, Args &&... extraArgs) |
| template<typename TFallback , typename TFactory , typename... Args> | |
| Layer * | tryConstructNextLayerFromFactoryWithFallback (TFactory factoryFn, uint8_t *data, size_t dataLen, Args &&... extraArgs) |
| Try to construct the next layer in the protocol stack using a factory functor with a fallback option. More... | |
| template<typename TFallback , typename TFactory , typename... Args> | |
| Layer * | tryConstructNextLayerFromFactoryWithFallback (TFactory factoryFn, uint8_t *data, size_t dataLen, Packet *packet, Args &&... extraArgs) |
| Try to construct the next layer in the protocol stack using a factory functor with a fallback option. More... | |
Additional Inherited Members | |
Static Protected Member Functions inherited from pcpp::Layer | |
| template<typename T > | |
| static bool | canReinterpretAs (const uint8_t *data, size_t dataLen) |
| Check if the data is large enough to reinterpret as a type. More... | |
Abstract base class for GRE layers (GREv0Layer and GREv1Layer). Cannot be instantiated and contains common logic for derived classes
|
static |
A static method that determines the GRE version of GRE layer raw data by looking at the gre_basic_header::version field
| [in] | greData | GRE layer raw data |
| [in] | greDataLen | Size of raw data |
|
overridevirtual |
Implements pcpp::Layer.
|
inlineoverridevirtual |
Implements pcpp::Layer.
| bool pcpp::GreLayer::getSequenceNumber | ( | uint32_t & | seqNumber | ) | const |
Get sequence number value if field exists in layer
| [out] | seqNumber | The returned sequence number value if exists in layer. Else remain unchanged |
|
overridevirtual |
Currently identifies the following next layers: IPv4Layer, IPv6Layer, VlanLayer, MplsLayer, PPP_PPTPLayer, EthLayer, EthDot3Layer Otherwise sets PayloadLayer
Implements pcpp::Layer.
|
overrideprotectedvirtual |
Serializes the layer's data into a provided serializer object. This is used for generating serialized representations (like JSON) of the packet layers. This method should be overridden by derived layers to provide specific serialization logic.
| [in] | serializer | The object scope serializer to which the layer details should be written. |
Reimplemented from pcpp::Layer.
Reimplemented in pcpp::GREv1Layer, and pcpp::GREv0Layer.
| bool pcpp::GreLayer::setSequenceNumber | ( | uint32_t | seqNumber | ) |
Set sequence number value. If field already exists (gre_basic_header::sequenceNumBit is set) then only the new value is set. If field doesn't exist it will be added to the layer, gre_basic_header::sequenceNumBit will be set and the new value will be set
| [in] | seqNumber | The sequence number value to set |
| bool pcpp::GreLayer::unsetSequenceNumber | ( | ) |
Unset sequence number and remove it from the layer