28 static_assert(
sizeof(
ether_header) == 14,
"ether_header size is not 14 bytes");
33 #define PCPP_ETHERTYPE_IP 0x0800
35 #define PCPP_ETHERTYPE_ARP 0x0806
37 #define PCPP_ETHERTYPE_ETHBRIDGE 0x6558
39 #define PCPP_ETHERTYPE_REVARP 0x8035
41 #define PCPP_ETHERTYPE_AT 0x809B
43 #define PCPP_ETHERTYPE_AARP 0x80F3
45 #define PCPP_ETHERTYPE_VLAN 0x8100
47 #define PCPP_ETHERTYPE_IPX 0x8137
49 #define PCPP_ETHERTYPE_IPV6 0x86dd
51 #define PCPP_ETHERTYPE_LOOPBACK 0x9000
53 #define PCPP_ETHERTYPE_PPPOED 0x8863
55 #define PCPP_ETHERTYPE_PPPOES 0x8864
57 #define PCPP_ETHERTYPE_MPLS 0x8847
59 #define PCPP_ETHERTYPE_PPP 0x880B
61 #define PCPP_ETHERTYPE_ROCEV1 0x8915
63 #define PCPP_ETHERTYPE_IEEE_802_1AD 0x88A8
65 #define PCPP_ETHERTYPE_WAKE_ON_LAN 0x0842
167 static std::vector<FieldDescriptor>
all()
171 std::copy(extra.begin(), extra.end(), std::back_inserter(result));
Definition: EthLayer.h:70
OsiModelLayer getOsiModelLayer() const override
Definition: EthLayer.h:150
std::string toString() const override
void serializeLayer(ObjectScope &serializer) 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:100
void setSourceMac(const MacAddress &sourceMac)
Definition: EthLayer.h:114
MacAddress getDestMac() const
Definition: EthLayer.h:121
MacAddress getSourceMac() const
Definition: EthLayer.h:107
size_t getHeaderLen() const override
Definition: EthLayer.h:140
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:84
void setDestMac(const MacAddress &destMac)
Definition: EthLayer.h:128
EthLayer(uint8_t *data, size_t dataLen, Packet *packet)
Definition: EthLayer.h:76
Definition: MacAddress.h:24
void copyTo(uint8_t **arr) const
Definition: MacAddress.h:143
Definition: Serializers.h:230
const ProtocolType Ethernet
Ethernet protocol.
Definition: ProtocolType.h:48
The main namespace for the PcapPlusPlus lib.
Definition: AssertionUtils.h:19
OsiModelLayer
An enum representing OSI model layers.
Definition: ProtocolType.h:420
@ OsiModelDataLinkLayer
Data link layer (layer 2)
Definition: ProtocolType.h:424
Definition: EthLayer.h:165
static std::vector< FieldDescriptor > all()
Definition: EthLayer.h:167
static const FieldDescriptor SrcMacAddress
Source MAC address, as a string.
Definition: EthLayer.h:176
static const FieldDescriptor DstMacAddress
Destination MAC address, as a string.
Definition: EthLayer.h:179
static const FieldDescriptor EtherType
EtherType, in host byte order (e.g. 2048 for IPv4)
Definition: EthLayer.h:182
Definition: Serializers.h:18
static std::vector< FieldDescriptor > all()
Definition: Layer.h:214