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

#include <Ipv4ProtocolPrinter.h>

Inheritance diagram for inet::Ipv4ProtocolPrinter:
inet::ProtocolPrinter

Public Member Functions

virtual void print (const Ptr< const Chunk > &chunk, const Protocol *protocol, const cMessagePrinter::Options *options, Context &context) const override
 Prints the given chunk of protocol according to options into context. More...
 

Member Function Documentation

◆ print()

void inet::Ipv4ProtocolPrinter::print ( const Ptr< const Chunk > &  chunk,
const Protocol protocol,
const cMessagePrinter::Options *  options,
Context context 
) const
overridevirtual

Prints the given chunk of protocol according to options into context.

Implements inet::ProtocolPrinter.

19 {
20  if (auto header = dynamicPtrCast<const Ipv4Header>(chunk)) {
21  context.sourceColumn << header->getSrcAddress();
22  context.destinationColumn << header->getDestAddress();
23  B payloadLength = B(header->getTotalLengthField()) - header->getChunkLength();
24  context.infoColumn << "IPv4"
25  << " id:" << header->getIdentification()
26  << " ttl:" << header->getTimeToLive();
27  if (header->getDontFragment())
28  context.infoColumn << " DontFrag";
29  if (header->getMoreFragments() || header->getFragmentOffset() > 0) {
30  context.infoColumn << " frag:[" << header->getFragmentOffset() << ".." << header->getFragmentOffset() + payloadLength.get();
31  if (!header->getMoreFragments())
32  context.infoColumn << " End";
33  context.infoColumn << ")";
34  }
35  auto payloadProtocol = header->getProtocol();
36  if (payloadProtocol)
37  context.infoColumn << " payload:" << payloadProtocol->getName() << " " << payloadLength;
38  else
39  context.infoColumn << " payload: protocol(" << header->getProtocolId() << ") " << payloadLength;
40  // TODO options
41  }
42  else
43  context.infoColumn << "(IPv4) " << chunk;
44 }

The documentation for this class was generated from the following files:
inet::units::units::B
intscale< b, 1, 8 > B
Definition: Units.h:1168