30 static_assert(
sizeof(
s7commhdr) == 10,
"s7commhdr size is not 10 bytes");
43 static_assert(
sizeof(
s7comm_ack_data_hdr) == 12,
"s7comm_ack_data_hdr size is not 12 bytes");
69 S7CommParameter(uint8_t* data,
size_t dataLen) : m_Data(data), m_DataLen(dataLen)
86 S7CommLayer(uint8_t msgType, uint16_t pduRef, uint16_t paramLength, uint16_t dataLength, uint8_t errorClass = 0,
87 uint8_t errorCode = 0);
169 return reinterpret_cast<s7commhdr*
>(m_Data);
172 s7comm_ack_data_hdr* getS7commAckDataHeader()
const
174 if (getS7commHeader()->msgType == 0x03)
176 return reinterpret_cast<s7comm_ack_data_hdr*
>(m_Data);
181 size_t getS7commHeaderLength()
const;
183 std::unique_ptr<S7CommParameter> m_Parameter;
Definition: S7CommLayer.h:77
void setErrorCode(uint8_t errorCode) const
uint16_t getPduRef() const
void computeCalculateFields() override
Does nothing for this layer (S7CommLayer is always last)
Definition: S7CommLayer.h:146
const S7CommParameter * getParameter()
uint8_t getProtocolId() const
void setErrorClass(uint8_t errorClass) const
static bool isDataValid(const uint8_t *data, size_t dataSize)
OsiModelLayer getOsiModelLayer() const override
Definition: S7CommLayer.h:161
void setPduRef(uint16_t pduRef) const
size_t getHeaderLen() const override
Definition: S7CommLayer.h:140
uint8_t getErrorClass() const
uint16_t getDataLength() const
S7CommLayer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: S7CommLayer.h:94
uint8_t getMsgType() const
uint8_t getErrorCode() const
void setMsgType(uint8_t msgType) const
S7CommLayer(uint8_t msgType, uint16_t pduRef, uint16_t paramLength, uint16_t dataLength, uint8_t errorClass=0, uint8_t errorCode=0)
std::string toString() const override
uint16_t getParamLength() const
void parseNextLayer() override
Does nothing for this layer (S7CommLayer is always last)
Definition: S7CommLayer.h:150
Definition: S7CommLayer.h:48
size_t getDataLength() const
Definition: S7CommLayer.h:63
uint8_t * getData() const
Definition: S7CommLayer.h:58
const ProtocolType S7COMM
S7COMM 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:267
@ OsiModelApplicationLayer
Application layer (layer 7)
Definition: ProtocolType.h:281
Definition: S7CommLayer.h:36
uint8_t errorClass
error class
Definition: S7CommLayer.h:38
uint8_t errorCode
error code
Definition: S7CommLayer.h:40
Definition: S7CommLayer.h:15
uint16_t dataLength
data length
Definition: S7CommLayer.h:27
uint16_t paramLength
parameter length
Definition: S7CommLayer.h:25
uint8_t protocolId
protocol id
Definition: S7CommLayer.h:17
uint8_t msgType
message type
Definition: S7CommLayer.h:19
uint16_t reserved
redundancy identification (reserved)
Definition: S7CommLayer.h:21
uint16_t pduRef
protocol data unit reference
Definition: S7CommLayer.h:23