X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FDefaultBundle%2FIpV6Packet.hh;h=112afdc99cb5a375ff36ae5123aadba817c646b8;hb=1f3b4447179d0cd771037d02b9a5671eeaaaec8d;hp=0f1aafbf9baec42bd572d775b925c7276b9b0855;hpb=64e170521a221effc1ba11a0544f753544d03bac;p=senf.git diff --git a/Packets/DefaultBundle/IpV6Packet.hh b/Packets/DefaultBundle/IpV6Packet.hh index 0f1aafb..112afdc 100644 --- a/Packets/DefaultBundle/IpV6Packet.hh +++ b/Packets/DefaultBundle/IpV6Packet.hh @@ -25,11 +25,7 @@ #define HH_IpV6Packet_ 1 // Custom includes -#include "Packets/PacketType.hh" -#include "Packets/ParseInt.hh" -#include "Packets/PacketRegistry.hh" -#include "Packets/PacketParser.hh" -#include "Packets/ParseArray.hh" +#include "Packets/Packets.hh" #include "IpV4Packet.hh" //#include "IpV6Packet.mpp" @@ -37,16 +33,15 @@ namespace senf { - ///\addtogroup protocolbundle_default - ///@{ + /** \brief Parse an IpV6 packet - // See RFC2460 + Parser implementing the IpV6 header. The fields implemented are: + + \see IpV6PacketType \n + RFC 2460 + */ struct Parse_IpV6 : public PacketParserBase { - SENF_PACKET_PARSER_NO_INIT(Parse_IpV6); - - /////////////////////////////////////////////////////////////////////////// - typedef Parse_UIntField < 0, 4 > Parse_Version; typedef Parse_UIntField < 4, 12 > Parse_Class; typedef Parse_UIntField < 12, 32 > Parse_FlowLabel; @@ -55,6 +50,10 @@ namespace senf { typedef Parse_Array < 16, Parse_8bit > Parse_Addr; +# ifndef DOXYGEN + + SENF_PACKET_PARSER_NO_INIT(Parse_IpV6); + SENF_PACKET_PARSER_DEFINE_FIXED_FIELDS( ((OverlayField)( version, Parse_Version )) ((OverlayField)( trafficClass, Parse_Class )) @@ -65,11 +64,37 @@ namespace senf { ((Field )( source, Parse_Addr )) ((Field )( destination, Parse_Addr )) ); +# else + + Parse_Version version(); + Parse_Class trafficClass(); + Parse_FlowLabel flowLabel(); + Parse_16bit length(); + Parse_8bit nextHeader(); + Parse_8bit hopLimit(); + Parse_Addr source(); + Parse_Addr destination(); + +# endif + void init() { version() = 6; } }; + /** \brief IpV6 packet + + \par Packet type (typedef): + \ref IpV6Packet + + \par Fields: + \ref Parse_IpV6 + + \par Associated registries: + \ref IpTypes + + \ingroup protocolbundle_default + */ struct IpV6PacketType : public PacketTypeBase, public PacketTypeMixin @@ -89,12 +114,15 @@ namespace senf { static void dump(packet p, std::ostream & os); }; + /** \brief IpV6 packet typedef */ typedef IpV6PacketType::packet IpV6Packet; ///@} } ///////////////////////////////hh.e//////////////////////////////////////// +#endif +#ifndef SENF_PACKETS_DECL_ONLY //#include "IpV6Packet.cci" //#include "IpV6Packet.ct" //#include "IpV6Packet.cti"