37 static_assert(
sizeof(
sll2_header) == 20,
"sll2_header size is not 20 bytes");
55 Sll2Layer(uint32_t interfaceIndex, uint16_t ARPHRDType, uint8_t packetType);
157 static std::vector<FieldDescriptor>
all()
162 std::copy(extra.begin(), extra.end(), std::back_inserter(result));
Definition: MacAddress.h:24
Definition: Serializers.h:230
Definition: Sll2Layer.h:42
uint8_t getLinkLayerAddrLen() const
const uint8_t * getLinkLayerAddr() const
void setArphrdType(uint16_t arphrdType)
bool setLinkLayerAddr(const uint8_t *addr, size_t addrLength)
uint8_t getPacketType() const
size_t getHeaderLen() const override
Definition: Sll2Layer.h:139
Sll2Layer(uint8_t *data, size_t dataLen, Packet *packet)
Definition: Sll2Layer.h:48
void computeCalculateFields() override
Calculate the next protocol type for known protocols: IPv4, IPv6, ARP, VLAN.
uint16_t getProtocolType() const
bool setMacAddressAsLinkLayer(const MacAddress &macAddr)
void setProtocolType(uint16_t protocolType)
std::string toString() const override
OsiModelLayer getOsiModelLayer() const override
Definition: Sll2Layer.h:146
void setPacketType(uint8_t packetType)
uint16_t getArphrdType() const
MacAddress getLinkLayerAsMacAddress()
sll2_header * getSll2Header() const
Definition: Sll2Layer.h:62
void parseNextLayer() override
Sll2Layer(uint32_t interfaceIndex, uint16_t ARPHRDType, uint8_t packetType)
void setInterfaceIndex(uint32_t interfaceIndex)
void serializeLayer(ObjectScope &serializer) const override
uint32_t getInterfaceIndex() const
static bool isDataValid(const uint8_t *data, size_t dataLen)
const ProtocolType SLL2
SLL2 protocol.
Definition: ProtocolType.h:228
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: Serializers.h:18
static std::vector< FieldDescriptor > all()
Definition: Layer.h:214
Definition: Sll2Layer.h:155
static const FieldDescriptor InterfaceIndex
Index of the capture interface.
Definition: Sll2Layer.h:170
static std::vector< FieldDescriptor > all()
Definition: Sll2Layer.h:157
static const FieldDescriptor ArpHeaderType
ARPHRD_* link-layer address type (e.g. 1 for Ethernet)
Definition: Sll2Layer.h:173
static const FieldDescriptor LinkLayerAddress
Link-layer address of the sender.
Definition: Sll2Layer.h:179
static const FieldDescriptor PacketType
Packet type.
Definition: Sll2Layer.h:176
static const FieldDescriptor ProtocolType
EtherType of the encapsulated protocol, in host byte order.
Definition: Sll2Layer.h:167