39 os <<
"Internet protocol Version 6 fragment extension:\n" 42 <<
"0x" << std::hex << unsigned(p->fragmentOffset()) <<
"\n" 43 <<
senf::fieldName(
"more fragments") << (p->moreFragments()?
"yes":
"no") <<
"\n" 45 <<
"0x" << std::hex << unsigned(p->id()) <<
"\n";
51 p->nextHeader() <<
key(p.
next());
54 p->nextHeader() << 59;
63 os <<
"Internet protocol Version 6 routing extension:\n" 65 <<
senf::fieldName(
"header length") << unsigned(p->headerLength()) <<
"\n" 66 <<
senf::fieldName(
"routing type") << unsigned(p->routingType()) <<
"\n" 67 <<
senf::fieldName(
"segments left") << unsigned(p->segmentsLeft()) <<
"\n" 68 <<
" further Hop Addresses:\n";
69 typedef IPv6RoutingPacket::Parser::hopAddresses_t::container_type addrContainer_t;
70 addrContainer_t hopAddresses (p->hopAddresses());
71 if ( p->segmentsLeft() != 0 )
73 os <<
" " << *i <<
"\n";
79 p->nextHeader() <<
key(p.
next());
82 p->nextHeader() << 59;
91 os <<
"Internet protocol Version 6 Hop-By-Hop extension:\n" 93 <<
senf::fieldName(
"header length") << unsigned(p->headerLength()) <<
" ("<<
unsigned((1+p->headerLength())*8)<<
")\n";
94 os <<
" OptionTypes:\n";
95 typedef IPv6HopByHopOptionsPacket::Parser::options_t::container_type optContainer_t;
96 optContainer_t options (p->options());
104 p->nextHeader() <<
key(p.
next());
107 p->nextHeader() << 59;
116 os <<
"Internet protocol Version 6 Destination Options extension:\n" 117 <<
senf::fieldName(
"next header") << unsigned (p->nextHeader()) <<
"\n" 118 <<
senf::fieldName(
"header length") << unsigned (p->headerLength()) <<
"\n";
119 os <<
" OptionTypes:\n";
120 typedef IPv6DestinationOptionsPacket::Parser::options_t::container_type optContainer_t;
121 optContainer_t options (p->options());
129 p->nextHeader() <<
key(p.
next());
132 p->nextHeader() << 59;
static optional_key_t key(Packet const &p)
Find key of packet from registry.
static void dump(packet p, std::ostream &os)
Dump given IPv6FragmentPacket in readable form to given output stream.
static void finalize(packet p)
std::string fieldName(std::string const &s)
static void finalize(packet p)
SENF_PACKET_INSTANTIATE_TEMPLATE(senf::IPv6FragmentPacket)
raw_container::const_iterator const_iterator
Protocol specific packet handle.
Invalid packet chain operation.
Packet next() const
Get next packet in chain.
raw_container::iterator iterator
static void dump(packet p, std::ostream &os)
Dump given IPv6RoutingPacket in readable form to given output stream.
static const IPTypes::key_t ipType
static void finalize(packet p)
static const IPTypes::key_t ipType
static void finalize(packet p)
SENF_PACKET_REGISTRY_REGISTER(senf::IPTypes, senf::IPv6FragmentPacketType::ipType, senf::IPv6FragmentPacket)
static void dump(packet p, std::ostream &os)
Dump given IPv6DestinationOptionsPacket in readable form to given output stream.
static const IPTypes::key_t ipType
static void dump(packet p, std::ostream &os)
Dump given IPv6HopByHopOptionsPacket in readable form to given output stream.
IPv6Extensions public header.
static const IPTypes::key_t ipType
IP protocol number registry.