61 return data && dataLen >=
sizeof(cisco_hdlc_header);
69 return sizeof(cisco_hdlc_header);
91 static std::vector<FieldDescriptor>
all()
95 std::copy(extra.begin(), extra.end(), std::back_inserter(result));
110 #pragma pack(push, 1)
111 struct cisco_hdlc_header
118 static_assert(
sizeof(cisco_hdlc_header) == 4,
"cisco_hdlc_header size is not 4 bytes");
120 cisco_hdlc_header* getCiscoHdlcHeader()
const
122 return reinterpret_cast<cisco_hdlc_header*
>(m_Data);
125 void setNextProtocol(uint16_t protocol);
Definition: CiscoHdlcLayer.h:10
size_t getHeaderLen() const override
Definition: CiscoHdlcLayer.h:67
AddressType
Definition: CiscoHdlcLayer.h:15
@ Unknown
Unknown address type.
void setAddressValue(uint8_t address)
static bool isDataValid(const uint8_t *data, size_t dataLen)
Definition: CiscoHdlcLayer.h:59
OsiModelLayer getOsiModelLayer() const override
Definition: CiscoHdlcLayer.h:80
~CiscoHdlcLayer() override=default
Default destructor for this layer.
CiscoHdlcLayer(uint8_t *data, size_t dataLen, Packet *packet)
Definition: CiscoHdlcLayer.h:28
void serializeLayer(ObjectScope &serializer) const override
void setAddress(AddressType address)
std::string toString() const override
CiscoHdlcLayer(AddressType address)
AddressType getAddress() const
uint16_t getNextProtocol() const
uint8_t getAddressValue() const
void computeCalculateFields() override
Calculate the Next Protocol when possible.
void parseNextLayer() override
Parses the next layer. Currently, supports IPv4 and IPv6.
Definition: Serializers.h:230
const ProtocolType CiscoHDLC
Cisco HDLC protocol.
Definition: ProtocolType.h:246
The main namespace for the PcapPlusPlus lib.
Definition: AssertionUtils.h:19
OsiModelLayer
An enum representing OSI model layers.
Definition: ProtocolType.h:425
@ OsiModelDataLinkLayer
Data link layer (layer 2)
Definition: ProtocolType.h:429
Definition: CiscoHdlcLayer.h:89
static const FieldDescriptor NextProtocol
Field descriptor for the protocol type of the encapsulated payload, written as a number.
Definition: CiscoHdlcLayer.h:103
static std::vector< FieldDescriptor > all()
Definition: CiscoHdlcLayer.h:91
static const FieldDescriptor Address
Field descriptor for the address field, written as a string (see CiscoHdlcLayer::AddressType).
Definition: CiscoHdlcLayer.h:100
Definition: Serializers.h:18
static std::vector< FieldDescriptor > all()
Definition: Layer.h:214