PcapPlusPlus  Next
LLCLayer.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Layer.h"
4 
6 
9 namespace pcpp
10 {
11 #pragma pack(push, 1)
14  struct llc_header
15  {
17  uint8_t dsap,
22  };
23 #pragma pack(pop)
24  static_assert(sizeof(llc_header) == 3, "llc_header size is not 3 bytes");
25 
28  class LLCLayer : public Layer
29  {
30  public:
36  LLCLayer(uint8_t* data, size_t dataLen, Layer* prevLayer, Packet* packet)
37  : Layer(data, dataLen, prevLayer, packet, LLC)
38  {}
39 
44  LLCLayer(uint8_t dsap, uint8_t ssap, uint8_t control);
45 
48  inline llc_header* getLlcHeader() const
49  {
50  return reinterpret_cast<llc_header*>(m_Data);
51  };
52 
53  // overridden methods
54 
56  void parseNextLayer() override;
57 
59  void computeCalculateFields() override
60  {}
61 
63  size_t getHeaderLen() const override
64  {
65  return sizeof(llc_header);
66  }
67 
69  std::string toString() const override;
70 
73  {
74  return OsiModelDataLinkLayer;
75  }
76 
81  static bool isDataValid(const uint8_t* data, size_t dataLen);
82  };
83 
84 } // namespace pcpp
Definition: LLCLayer.h:29
OsiModelLayer getOsiModelLayer() const override
Definition: LLCLayer.h:72
void parseNextLayer() override
Parses the next layer. Currently only STP supported as next layer.
size_t getHeaderLen() const override
Definition: LLCLayer.h:63
void computeCalculateFields() override
Does nothing for this layer.
Definition: LLCLayer.h:59
LLCLayer(uint8_t dsap, uint8_t ssap, uint8_t control)
LLCLayer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: LLCLayer.h:36
llc_header * getLlcHeader() const
Definition: LLCLayer.h:48
static bool isDataValid(const uint8_t *data, size_t dataLen)
std::string toString() const override
Definition: Layer.h:60
Definition: Packet.h:22
The main namespace for the PcapPlusPlus lib.
OsiModelLayer
An enum representing OSI model layers.
Definition: ProtocolType.h:225
@ OsiModelDataLinkLayer
Data link layer (layer 2)
Definition: ProtocolType.h:229
const ProtocolType LLC
Logical Link Control (LLC)
Definition: ProtocolType.h:176
Definition: LLCLayer.h:15
uint8_t dsap
Destination Service Access Point.
Definition: LLCLayer.h:17
uint8_t control
Control Field.
Definition: LLCLayer.h:21
uint8_t ssap
Source Service Access Point.
Definition: LLCLayer.h:19