PcapPlusPlus  Next
pcpp::PPPoELayer Class Reference

#include <PPPoELayer.h>

Inheritance diagram for pcpp::PPPoELayer:
pcpp::Layer pcpp::IDataContainer pcpp::PPPoEDiscoveryLayer pcpp::PPPoESessionLayer

Public Types

enum  PPPoECode {
  PPPOE_CODE_SESSION = 0x00 , PPPOE_CODE_PADO = 0x07 , PPPOE_CODE_PADI = 0x09 , PPPOE_CODE_PADG = 0x0a ,
  PPPOE_CODE_PADC = 0x0b , PPPOE_CODE_PADQ = 0x0c , PPPOE_CODE_PADR = 0x19 , PPPOE_CODE_PADS = 0x65 ,
  PPPOE_CODE_PADT = 0xa7 , PPPOE_CODE_PADM = 0xd3 , PPPOE_CODE_PADN = 0xd4
}
 PPPoE possible codes. More...
 

Public Member Functions

pppoe_headergetPPPoEHeader () const
 
void computeCalculateFields () override
 Calculate pppoe_header::payloadLength field.
 
OsiModelLayer getOsiModelLayer () const override
 
- Public Member Functions inherited from pcpp::Layer
 ~Layer () override
 
LayergetNextLayer () const
 
LayergetPrevLayer () 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
 
uint8_t * getDataPtr (size_t offset=0) const override
 
virtual void parseNextLayer ()=0
 Each layer is responsible for parsing the next layer.
 
virtual size_t getHeaderLen () const =0
 
virtual std::string toString () const =0
 

Detailed Description

An abstract class that describes the PPPoE protocol. Contains common data and logic of the two types of PPPoE packets: PPPoE session and PPPoE discovery

Member Enumeration Documentation

◆ PPPoECode

PPPoE possible codes.

Enumerator
PPPOE_CODE_SESSION 

PPPoE session code.

PPPOE_CODE_PADO 

PPPoE discovery PADO.

PPPOE_CODE_PADI 

PPPoE discovery PADI.

PPPOE_CODE_PADG 

PPPoE discovery PADG.

PPPOE_CODE_PADC 

PPPoE discovery PADC.

PPPOE_CODE_PADQ 

PPPoE discovery PADQ.

PPPOE_CODE_PADR 

PPPoE discovery PADR.

PPPOE_CODE_PADS 

PPPoE discovery PADS.

PPPOE_CODE_PADT 

PPPoE discovery PADT.

PPPOE_CODE_PADM 

PPPoE discovery PADM.

PPPOE_CODE_PADN 

PPPoE discovery PADN.

Member Function Documentation

◆ getOsiModelLayer()

OsiModelLayer pcpp::PPPoELayer::getOsiModelLayer ( ) const
inlineoverridevirtual
Returns
The OSI Model layer this protocol belongs to

Implements pcpp::Layer.

◆ getPPPoEHeader()

pppoe_header* pcpp::PPPoELayer::getPPPoEHeader ( ) const
inline

Get a pointer to the PPPoE header. Notice this points directly to the data, so every change will change the actual packet data

Returns
A pointer to the pppoe_header