26 static_assert(
sizeof(
ether_header) == 14,
"ether_header size is not 14 bytes");
31 #define PCPP_ETHERTYPE_IP 0x0800
33 #define PCPP_ETHERTYPE_ARP 0x0806
35 #define PCPP_ETHERTYPE_ETHBRIDGE 0x6558
37 #define PCPP_ETHERTYPE_REVARP 0x8035
39 #define PCPP_ETHERTYPE_AT 0x809B
41 #define PCPP_ETHERTYPE_AARP 0x80F3
43 #define PCPP_ETHERTYPE_VLAN 0x8100
45 #define PCPP_ETHERTYPE_IPX 0x8137
47 #define PCPP_ETHERTYPE_IPV6 0x86dd
49 #define PCPP_ETHERTYPE_LOOPBACK 0x9000
51 #define PCPP_ETHERTYPE_PPPOED 0x8863
53 #define PCPP_ETHERTYPE_PPPOES 0x8864
55 #define PCPP_ETHERTYPE_MPLS 0x8847
57 #define PCPP_ETHERTYPE_PPP 0x880B
59 #define PCPP_ETHERTYPE_ROCEV1 0x8915
61 #define PCPP_ETHERTYPE_IEEE_802_1AD 0x88A8
63 #define PCPP_ETHERTYPE_WAKE_ON_LAN 0x0842
Definition: EthLayer.h:68
OsiModelLayer getOsiModelLayer() const override
Definition: EthLayer.h:148
std::string toString() const override
static bool isDataValid(const uint8_t *data, size_t dataLen)
EthLayer(const MacAddress &sourceMac, const MacAddress &destMac, uint16_t etherType=0)
void parseNextLayer() override
ether_header * getEthHeader() const
Definition: EthLayer.h:98
void setSourceMac(const MacAddress &sourceMac)
Definition: EthLayer.h:112
MacAddress getDestMac() const
Definition: EthLayer.h:119
MacAddress getSourceMac() const
Definition: EthLayer.h:105
size_t getHeaderLen() const override
Definition: EthLayer.h:138
void computeCalculateFields() override
Calculate ether_header::etherType for known protocols: IPv4, IPv6, ARP, VLAN.
EthLayer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: EthLayer.h:82
void setDestMac(const MacAddress &destMac)
Definition: EthLayer.h:126
EthLayer(uint8_t *data, size_t dataLen, Packet *packet)
Definition: EthLayer.h:74
Definition: MacAddress.h:21
void copyTo(uint8_t **arr) const
Definition: MacAddress.h:130
The main namespace for the PcapPlusPlus lib.
const ProtocolType Ethernet
Ethernet protocol.
Definition: ProtocolType.h:23
OsiModelLayer
An enum representing OSI model layers.
Definition: ProtocolType.h:225
@ OsiModelDataLinkLayer
Data link layer (layer 2)
Definition: ProtocolType.h:229