/** \brief Dump given IPv6FragmentPacket in readable form to given output stream */
static void dump(packet p, std::ostream & os);
- static void finalize(packet p) {
- p->nextHeader() << key(p.next(nothrow)); }
+ static void finalize(packet p);
};
/** \brief IPv6 fragment extension packet typedef
static key_t nextPacketKey(packet p)
{ return p->nextHeader(); }
+
/** \brief Dump given IPv6RoutingPacket in readable form to given output stream */
static void dump(packet p, std::ostream & os);
- static void finalize(packet p) {
- p->nextHeader() << key(p.next(nothrow)); }
+ static void finalize(packet p);
};
/** \brief IPv6 routing extension packet typedef
{
# include SENF_PARSER()
- SENF_PARSER_FIELD ( nextHeader, UInt8Parser );
- SENF_PARSER_FIELD ( headerLength, UInt8Parser );
+ SENF_PARSER_FIELD ( nextHeader, UInt8Parser );
+ SENF_PARSER_FIELD_RO ( headerLength, UInt8Parser );
typedef detail::FixedAuxParserPolicy<UInt8Parser, 1u> ListOptionTypeAuxPolicy;
typedef detail::ListOptionTypeParser_Policy<
using mixin::init;
using mixin::initSize;
- static key_t nextPacketKey(packet p)
- { return p->nextHeader(); }
+ static key_t nextPacketKey(packet p) {
+ return p->nextHeader(); }
/** \brief Dump given IPv6HopByHopOptionsPacket in readable form to given output stream */
static void dump(packet p, std::ostream & os);
- static void finalize(packet p) {
- p->nextHeader() << key(p.next(nothrow)); }
+ static void finalize(packet p);
};
/** \brief IPv6 routing Hop-By-Hop packet typedef
{
# include SENF_PARSER()
SENF_PARSER_FIELD ( nextHeader, UInt8Parser );
- SENF_PARSER_FIELD ( headerLength, UInt8Parser );
-
+ SENF_PARSER_FIELD_RO ( headerLength, UInt8Parser );
+ typedef detail::FixedAuxParserPolicy<UInt8Parser, 1u> ListOptionTypeAuxPolicy;
+ typedef detail::ListOptionTypeParser_Policy<
+ IPv6GenericOptionParser, ListOptionTypeAuxPolicy> ListOptionTypePolicy;
+ typedef ListParser<ListOptionTypePolicy> ListOptionTypeParser;
+
+ SENF_PARSER_FIELD ( options, ListOptionTypeParser);
+
SENF_PARSER_FINALIZE ( IPv6DestinationOptionsPacketParser );
};
/** \brief Dump given IPv6DestinationOptionsPacket in readable form to given output stream */
static void dump(packet p, std::ostream & os);
- static void finalize(packet p) {
- p->nextHeader() << key(p.next(nothrow)); }
+ static void finalize(packet p);
};
/** \brief IPv6 routing Destination Options packet typedef