#include <Ipv6ProtocolPrinter.h>
|
| 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...
|
| |
◆ 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.
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 <<
")";
35 auto payloadProtocol = header->getProtocol();
37 context.infoColumn <<
" payload:" << payloadProtocol->getName() <<
" " << payloadLength;
39 context.infoColumn <<
" payload: protocol(" << header->getProtocolId() <<
") " << payloadLength;
43 context.infoColumn <<
"(IPv6) " << chunk;
The documentation for this class was generated from the following files: