*/
struct Parse_IpV6Extension_Fragment : public PacketParserBase
{
- typedef Parse_UInt8 Parse_8bit;
- typedef Parse_UIntField < 0, 13 > Parse_Offset;
- typedef Parse_UIntField < 13, 15 > Parse_Reserved;
- typedef Parse_Flag < 15 > Parse_More;
- typedef Parse_UInt32 Parse_32bit;
-
-# ifndef DOXYGEN
-
- SENF_PACKET_PARSER_INIT(Parse_IpV6Extension_Fragment);
-
- SENF_PACKET_PARSER_DEFINE_FIXED_FIELDS(
- ((Field )( nextHeader , Parse_8bit ))
- ((Field )( reserved1 , Parse_8bit ))
- ((OverlayField)( fragmentOffset , Parse_Offset ))
- ((OverlayField)( reserved2 , Parse_Reserved ))
- ((Field )( moreFragments , Parse_More ))
- ((Field )( id , Parse_32bit )) );
-
-# else
-
- Parse_8bit nextHeader();
- Parse_8bit reserved1();
- Parse_Offset fragmentOffset();
- Parse_Reserved reserved2();
- Parse_More moreFragments();
- Parse_32bit id();
-
-# endif
+# include SENF_FIXED_PARSER()
+
+ SENF_PARSER_FIELD( nextHeader , Parse_UInt8 );
+ SENF_PARSER_FIELD( reserved1 , Parse_UInt8 );
+
+ SENF_PARSER_BITFIELD( fragmentOffset, 13, unsigned );
+ SENF_PARSER_BITFIELD( reserved2, 2, unsigned );
+ SENF_PARSER_BITFIELD( moreFragments, 1, bool );
+
+ SENF_PARSER_FIELD( id , Parse_UInt32 );
+
+ SENF_PARSER_FINALIZE(Parse_IpV6Extension_Fragment);
};
/** \brief IpV6 fragment extension