104 #pragma pack(push, 1)
130 :
Layer(data, dataLen, prevLayer, packet,
STP)
136 m_Data =
new uint8_t[dataLen];
137 memset(m_Data, 0, dataLen);
274 :
StpLayer(data, dataLen, prevLayer, packet)
310 return "Spanning Tree Topology Change Notification";
572 return "Spanning Tree Configuration";
660 return "Rapid Spanning Tree";
888 return "Multiple Spanning Tree";
Definition: MacAddress.h:25
Definition: StpLayer.h:681
void setMstConfigRevision(uint16_t value)
uint8_t getNumberOfMSTIConfMessages() const
Definition: StpLayer.h:864
uint32_t getCISTIrpc() const
void setRemainingHopCount(uint8_t value)
Definition: StpLayer.h:855
void parseNextLayer() override
Parses next layer.
Definition: StpLayer.h:880
mstp_conf_bpdu * getMstpHeader() const
Definition: StpLayer.h:704
uint64_t getCISTBridgeId() const
void setCISTBridgeSystemIDExtension(uint16_t value)
uint16_t getCISTBridgePriority() const
uint16_t getMstConfigRevision() const
void setMstConfigDigest(const uint8_t *value, uint8_t len)
uint8_t getMstConfigurationFormatSelector() const
Definition: StpLayer.h:724
uint8_t * getMstConfigDigest() const
Definition: StpLayer.h:767
msti_conf_msg * getMstiConfMessages() const
void setCISTBridgeId(uint64_t value)
void setCISTBridgeSystemID(const pcpp::MacAddress &value)
void setVersion3Len(uint16_t value)
std::string getMstConfigurationName() const
void setMstConfigurationName(const std::string &value)
pcpp::MacAddress getCISTBridgeSystemID() const
Definition: StpLayer.h:831
void setCISTBridgePriority(uint16_t value)
void setCISTIrpc(uint32_t value)
uint16_t getCISTBridgeSystemIDExtension() const
MultipleStpLayer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: StpLayer.h:690
uint16_t getVersion3Len() const
std::string toString() const override
Definition: StpLayer.h:886
void setMstConfigurationFormatSelector(uint8_t value)
Definition: StpLayer.h:733
static bool isDataValid(const uint8_t *data, size_t dataLen)
Definition: StpLayer.h:897
uint8_t getRemainingHopCount() const
Definition: StpLayer.h:846
Definition: StpLayer.h:592
uint8_t getVersion1Len() const
Definition: StpLayer.h:628
void parseNextLayer() override
Parses next layer.
std::string toString() const override
Definition: StpLayer.h:658
static bool isDataValid(const uint8_t *data, size_t dataLen)
Definition: StpLayer.h:669
rstp_conf_bpdu * getRstpConfHeader() const
Definition: StpLayer.h:619
RapidStpLayer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: StpLayer.h:605
void setVersion1Len(uint8_t value)
Definition: StpLayer.h:637
size_t getHeaderLen() const override
Definition: StpLayer.h:647
Definition: StpLayer.h:330
void setBridgePriority(uint16_t value)
StpConfigurationBPDULayer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: StpLayer.h:343
uint8_t getFlag() const
Definition: StpLayer.h:366
void setPathCost(uint32_t value)
size_t getHeaderLen() const override
Definition: StpLayer.h:559
StpConfigurationBPDULayer()
uint64_t getBridgeId() const
void setRootId(uint64_t value)
void setForwardDelay(double value)
pcpp::MacAddress getRootSystemID() const
Definition: StpLayer.h:420
uint16_t getPortId() const
void setMaximumAge(double value)
double getForwardDelay() const
void parseNextLayer() override
Parses next layer.
void setRootPriority(uint16_t value)
uint16_t getBridgeSystemIDExtension() const
void setBridgeSystemIDExtension(uint16_t value)
void setBridgeSystemID(const pcpp::MacAddress &value)
void setMessageAge(double value)
double getTransmissionInterval() const
stp_conf_bpdu * getStpConfHeader() const
Definition: StpLayer.h:357
double getMessageAge() const
uint16_t getBridgePriority() const
static bool isDataValid(const uint8_t *data, size_t dataLen)
Definition: StpLayer.h:581
uint16_t getRootSystemIDExtension() const
void setFlag(uint8_t value)
Definition: StpLayer.h:375
void setRootSystemID(const pcpp::MacAddress &value)
double getMaximumAge() const
void setRootSystemIDExtension(uint16_t value)
pcpp::MacAddress getBridgeSystemID() const
Definition: StpLayer.h:483
uint32_t getPathCost() const
uint64_t getRootId() const
void setTransmissionInterval(double value)
void setBridgeId(uint64_t value)
std::string toString() const override
Definition: StpLayer.h:570
void setPortId(uint16_t value)
uint16_t getRootPriority() const
Definition: StpLayer.h:127
static StpLayer * parseStpLayer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
uint8_t getVersion() const
Definition: StpLayer.h:181
uint8_t getType() const
Definition: StpLayer.h:199
static pcpp::MacAddress StpUplinkFastMulticastDstMAC
STP Uplink Fast protocol uses "01:00:0C:CD:CD:CD" as destination MAC.
Definition: StpLayer.h:148
void setProtoId(uint16_t value)
Definition: StpLayer.h:172
void setType(uint8_t value)
Definition: StpLayer.h:208
uint16_t getProtoId() const
Definition: StpLayer.h:163
size_t getHeaderLen() const override
Definition: StpLayer.h:218
stp_header * getStpHeader() const
Definition: StpLayer.h:154
static pcpp::MacAddress StpMulticastDstMAC
STP protocol uses "01:80:C2:00:00:00" multicast address as destination MAC.
Definition: StpLayer.h:146
OsiModelLayer getOsiModelLayer() const override
Definition: StpLayer.h:230
void setVersion(uint8_t value)
Definition: StpLayer.h:190
void computeCalculateFields() override
Does nothing for this layer.
Definition: StpLayer.h:224
static bool isDataValid(const uint8_t *data, size_t dataLen)
Definition: StpLayer.h:260
StpTopologyChangeBPDULayer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: StpLayer.h:273
std::string toString() const override
Definition: StpLayer.h:308
StpTopologyChangeBPDULayer()
stp_tcn_bpdu * getStpTcnHeader()
Definition: StpLayer.h:287
size_t getHeaderLen() const override
Definition: StpLayer.h:297
void parseNextLayer() override
Parses next layer.
static bool isDataValid(const uint8_t *data, size_t dataLen)
Definition: StpLayer.h:319
The main namespace for the PcapPlusPlus lib.
const ProtocolType STP
Definition: ProtocolType.h:283
OsiModelLayer
Definition: ProtocolType.h:364
@ OsiModelDataLinkLayer
Definition: ProtocolType.h:368
stp_tcn_bpdu stp_header
Spanning Tree protocol common header.
Definition: StpLayer.h:32
Definition: StpLayer.h:106
uint8_t portPriority
Priority value of port.
Definition: StpLayer.h:116
uint8_t bridgePriority
Priority value of switching device.
Definition: StpLayer.h:114
uint8_t flags
MSTI flags.
Definition: StpLayer.h:108
uint8_t remainingHops
Remaining hops of BPDU.
Definition: StpLayer.h:118
uint64_t regionalRootId
Regional root switching id (Priority (4 bits) + ID (12 bits) + Regional root (48 bits - MAC address))
Definition: StpLayer.h:110
uint32_t pathCost
Total path cost from local port to regional port.
Definition: StpLayer.h:112
Definition: StpLayer.h:80
uint8_t mstConfigFormatSelector
Configuration id format selector.
Definition: StpLayer.h:84
uint32_t irpc
CIST internal root path cost.
Definition: StpLayer.h:92
uint16_t version3Len
Version3 length.
Definition: StpLayer.h:82
uint8_t mstConfigName[32]
Configuration id name.
Definition: StpLayer.h:86
uint64_t cistBridgeId
CIST bridge id.
Definition: StpLayer.h:94
uint8_t remainId
CIST remaining hop count.
Definition: StpLayer.h:96
uint8_t mstConfigDigest[16]
Configuration id digest.
Definition: StpLayer.h:90
uint16_t mstConfigRevision
Configuration id revision.
Definition: StpLayer.h:88
Definition: StpLayer.h:68
uint8_t version1Len
Version1 length. The value is 0x0.
Definition: StpLayer.h:70
Definition: StpLayer.h:40
uint8_t flag
Flag for indicate purpose of BPDU.
Definition: StpLayer.h:42
uint64_t rootId
Root bridge ID.
Definition: StpLayer.h:44
uint64_t bridgeId
Bridge ID.
Definition: StpLayer.h:48
uint16_t helloTime
BPDU transmission interval.
Definition: StpLayer.h:56
uint16_t msgAge
Age of the BPDU.
Definition: StpLayer.h:52
uint16_t portId
Port ID.
Definition: StpLayer.h:50
uint16_t maxAge
Maximum age of the BPDU.
Definition: StpLayer.h:54
uint32_t pathCost
Cost of path.
Definition: StpLayer.h:46
uint16_t forwardDelay
Delay for STP.
Definition: StpLayer.h:58
Definition: StpLayer.h:21
uint8_t version
Protocol version. 0x0 for STP, 0x2 for RSTP, 0x3 for MSTP.
Definition: StpLayer.h:25
uint16_t protoId
Protocol ID. Fixed at 0x0, which represents IEEE 802.1d.
Definition: StpLayer.h:23
uint8_t type
Type of the BPDU. 0x0 for configuration, 0x2 for RSTP/MSTP, 0x80 for TCN.
Definition: StpLayer.h:27