X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FDefaultBundle%2FIpV6Extensions.hh;h=bc4ba896a9890acb02cc0ab4d92e0b0c378399ce;hb=d6abda313f70c8a849c5e3f3bbfc12ce301789f1;hp=37e74c7bb61b47edf99283dcef6ac70d08cc6199;hpb=a2bece00465e874b1a52e98918f64aa24919a009;p=senf.git diff --git a/Packets/DefaultBundle/IpV6Extensions.hh b/Packets/DefaultBundle/IpV6Extensions.hh index 37e74c7..bc4ba89 100644 --- a/Packets/DefaultBundle/IpV6Extensions.hh +++ b/Packets/DefaultBundle/IpV6Extensions.hh @@ -41,34 +41,18 @@ namespace senf { */ 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