INET Framework for OMNeT++/OMNEST
inet::TcpProtocolDissector Class Reference

#include <TcpProtocolDissector.h>

Inheritance diagram for inet::TcpProtocolDissector:
inet::ProtocolDissector

Public Member Functions

virtual void dissect (Packet *packet, const Protocol *protocol, ICallback &callback) const override
 Dissects the packet according to the protocol implemented by this ProtocolDissector. More...
 

Member Function Documentation

◆ dissect()

void inet::TcpProtocolDissector::dissect ( Packet packet,
const Protocol protocol,
ICallback callback 
) const
overridevirtual

Dissects the packet according to the protocol implemented by this ProtocolDissector.

Implements inet::ProtocolDissector.

19 {
20  const auto& header = packet->popAtFront<tcp::TcpHeader>();
21  callback.startProtocolDataUnit(&Protocol::tcp);
22  callback.visitChunk(header, &Protocol::tcp);
23  if (packet->getDataLength() != b(0)) {
24  auto dataProtocol = ProtocolGroup::tcpprotocol.findProtocol(header->getDestPort());
25  if (dataProtocol == nullptr)
26  dataProtocol = ProtocolGroup::tcpprotocol.findProtocol(header->getSrcPort());
27  callback.dissectPacket(packet, dataProtocol);
28  }
29  callback.endProtocolDataUnit(&Protocol::tcp);
30 }

The documentation for this class was generated from the following files:
inet::Protocol::tcp
static const Protocol tcp
Definition: Protocol.h:112
inet::ProtocolGroup::findProtocol
const Protocol * findProtocol(int protocolNumber) const
Definition: ProtocolGroup.cc:25
inet::units::values::b
value< int64_t, units::b > b
Definition: Units.h:1241
inet::ProtocolGroup::tcpprotocol
static ProtocolGroup tcpprotocol
Definition: ProtocolGroup.h:45