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

#include <Ipv6ProtocolPrinter.h>

Inheritance diagram for inet::Ipv6ProtocolPrinter:
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::Ipv6ProtocolPrinter::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.

20 {
21  if (Ptr<const Ipv6Header> header = dynamicPtrCast<const Ipv6Header>(chunk)) {
22  const Ipv6FragmentHeader *fh = dynamic_cast<const Ipv6FragmentHeader *>(header->findExtensionHeaderByType(IP_PROT_IPv6EXT_FRAGMENT));
23  B payloadLength = B(header->getPayloadLength());
24  context.sourceColumn << header->getSrcAddress();
25  context.destinationColumn << header->getDestAddress();
26  context.infoColumn << "IPv6"
27  << " ttl:" << header->getHopLimit();
28  if (fh && (fh->getMoreFragments() || fh->getFragmentOffset() > 0)) {
29  context.infoColumn << " id:" << fh->getIdentification()
30  << " frag:[" << fh->getFragmentOffset() << ".." << fh->getFragmentOffset() + payloadLength.get();
31  if (!fh->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 << "(IPv6) " << chunk;
44 }

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