53 icmpv6->code() = code;
59 icmpv6->code() = code;
65 icmpv6->code() = code;
70 os <<
"ICMPv6 Echo Request:\n" 77 os <<
"ICMPv6 Echo Reply:\n" 84 os <<
"ICMPv6 Error Destination Unreachable (no further fields available here)\n";
89 os <<
"ICMPv6 Error Packet Too Big:\n" 95 os <<
"ICMPv6 Error Time Exceeded:\n" 101 os <<
"ICMPv6 Error Parameter Problem:\n" 107 os <<
"ICMPv6 Multicast Listener Query:\n" 108 <<
senf::fieldName(
"Max. ResponseCode") << p->maxResponseCode() <<
"\n" 112 <<
senf::fieldName(
"Suppress Router-Side Processing") << p->sFlag() <<
"\n" 113 <<
senf::fieldName(
"Querier's Robustness Variable") << p->qrv() <<
"\n" 114 <<
senf::fieldName(
"Querier's Query Interval Code") << p->qqic() <<
"\n" 115 <<
" Source Addresses:\n";
116 parser::srcAddresses_t::container_type c (p->srcAddresses());
118 for (
unsigned int nr =1;
i != c.end(); ++
i, ++nr)
119 os <<
" " << nr <<
".) " << *
i <<
"\n";
125 os <<
"ICMPv6 Multicast Listener Report Message:\n" 127 <<
"\n Multicast Address Records:\n";
129 MLDv2ListenerReport::Parser::mcastAddrRecords_t::container_type cAddrR (p->mcastAddrRecords() );
131 for (; iAddrR != cAddrR.end(); ++iAddrR) {
132 os <<
senf::fieldName(
" Record Type") << unsigned(iAddrR->recordType()) <<
"\n" 133 <<
senf::fieldName(
" Multicast Address") << iAddrR->mcAddress() <<
"\n" 134 <<
" Source Addresses\n:";
137 for (;iSrcAddr != cSrcAddr.end();++iSrcAddr)
138 os <<
" " << *iSrcAddr <<
"\n";
139 os <<
" Auxiliary Data:\n";
142 for (;iAuxD != cAuxD.end(); ++iAuxD)
143 os <<
" " << *iAuxD <<
"\n";
149 os <<
"ICMPv6 Neighbor Discovery Router Solicitation Message:\n" 150 <<
senf::fieldName(
"Reserved(32Bit)") << unsigned(p->reserved()) <<
"\n";
151 parser::options_t::container_type optC (p->options());
153 for (; listIter != optC.end(); ++listIter) {
160 os <<
"ICMPv6 Neighbor Discovery Router Advertisement Message:\n" 161 <<
senf::fieldName(
"Current Hop Limit") << unsigned(p->curHopLimit()) <<
"\n" 162 <<
senf::fieldName(
"Managed Address Configuration") << unsigned(p->m()) <<
"\n" 164 <<
senf::fieldName(
"Reserved(6Bit)") << unsigned(p->reserved()) <<
"\n" 165 <<
senf::fieldName(
"Router Lifetime") << unsigned(p->routerLifetime()) <<
"\n" 166 <<
senf::fieldName(
"Reachable Time") << unsigned(p->reachableTime()) <<
"\n" 167 <<
senf::fieldName(
"Retrans Timer") << unsigned(p->retransTimer()) <<
"\n";
168 parser::options_t::container_type optC (p->options());
170 for (; listIter != optC.end(); ++listIter) {
177 os <<
"ICMPv6 Neighbor Discovery Neighbor Solicitation Message:\n" 178 <<
senf::fieldName(
"Reserved(32Bit)") << unsigned(p->reserved()) <<
"\n" 180 parser::options_t::container_type optC (p->options());
182 for (; listIter != optC.end(); ++listIter) {
189 os <<
"ICMPv6 Neighbor Discovery Neighbor Advertisement Message:\n" 193 <<
senf::fieldName(
"Reserved(29Bit)") << unsigned(p->reserved()) <<
"\n" 195 parser::options_t::container_type optC(p->options() );
197 for (; listIter != optC.end(); ++listIter) {
204 os <<
"ICMPv6 Neighbor Discovery Redirect Message:\n" 205 <<
senf::fieldName(
"Reserved(32Bit)") << unsigned(p->reserved()) <<
"\n" 208 parser::options_t::container_type optC(p->options() );
210 for (; listIter != optC.end(); ++listIter) {
static void dump(packet p, std::ostream &os)
static void dump(packet p, std::ostream &os)
Packet packet() const
Get packet this parser is parsing from.
static void dump(packet p, std::ostream &os)
static void dump(packet p, std::ostream &os)
std::string fieldName(std::string const &s)
void setErrCode(int code)
static void dump(packet p, std::ostream &os)
raw_container::const_iterator const_iterator
static void dump(packet p, std::ostream &os)
Protocol specific packet handle.
static void dump(packet p, std::ostream &os)
data_iterator i() const
Return beginning of data to parse.
raw_container::iterator iterator
static void dump(packet p, std::ostream &os)
static void dump(packet p, std::ostream &os)
static void dump(packet p, std::ostream &os)
SENF_PACKET_REGISTRY_REGISTER(senf::ICMPTypes, 1, senf::ICMPv6ErrDestUnreachable)
static void dump(packet p, std::ostream &os)
static void dump(packet p, std::ostream &os)
SENF_PACKET_INSTANTIATE_TEMPLATE(senf::ICMPv6ErrDestUnreachable)
VectorParser container wrapper.
void setErrCode(int code)
static void dump(packet p, std::ostream &os)
void setErrCode(int code)