X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FIpV4Packet.hh;h=c848d3a177d9475265a29523f217d90b03c3ab9f;hb=9a988902090d28007578e93bffd809f6bd913155;hp=0f9e296f61c907caf7bc31bed26d5b1a28e91094;hpb=c52cd7d87dbb525c1267aad27391b8b7365dbb57;p=senf.git diff --git a/Packets/IpV4Packet.hh b/Packets/IpV4Packet.hh index 0f9e296..c848d3a 100644 --- a/Packets/IpV4Packet.hh +++ b/Packets/IpV4Packet.hh @@ -1,6 +1,6 @@ // $Id$ // -// Copyright (C) 2006 +// Copyright (C) 2006 // Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) // Kompetenzzentrum fuer Satelitenkommunikation (SatCom) // Stefan Bund @@ -32,9 +32,9 @@ //#include "IpV4Packet.mpp" ///////////////////////////////hh.p//////////////////////////////////////// -namespace satcom { -namespace pkf { - +namespace senf { + + template struct Parse_IpV4 : public ParserBase { @@ -46,7 +46,7 @@ namespace pkf { Parse_IpV4(Iterator const & i) : ParserBase(i) {} static unsigned bytes() { return 20; } - + /////////////////////////////////////////////////////////////////////////// typedef Parse_UIntField < 0, 4, Iterator > Parse_Version; @@ -57,8 +57,8 @@ namespace pkf { typedef Parse_Flag < 1, Iterator > Parse_DF; typedef Parse_Flag < 2, Iterator > Parse_MF; typedef Parse_UIntField < 3, 16, Iterator > Parse_Frag; - typedef Parse_UInt32 < Iterator > Parse_32bit; - + typedef Parse_UInt32 < Iterator > Parse_32bit; + Parse_Version version() const { return Parse_Version (this->i() ); } Parse_IHL ihl() const { return Parse_IHL (this->i() ); } Parse_8bit tos() const { return Parse_8bit (this->i() + 1 ); } @@ -69,22 +69,24 @@ namespace pkf { Parse_MF mf() const { return Parse_MF (this->i() + 6 ); } Parse_Frag frag() const { return Parse_Frag (this->i() + 6 ); } Parse_8bit ttl() const { return Parse_8bit (this->i() + 8 ); } - Parse_8bit protocol() const { return Parse_8bit (this->i() + 9 ); } - Parse_16bit crc() const { return Parse_16bit (this->i() + 10 ); } - Parse_32bit source() const { return Parse_32bit (this->i() + 12 ); } + Parse_8bit protocol() const { return Parse_8bit (this->i() + 9 ); } + Parse_16bit crc() const { return Parse_16bit (this->i() + 10 ); } + Parse_32bit source() const { return Parse_32bit (this->i() + 12 ); } Parse_32bit destination() const { return Parse_32bit (this->i() + 16 ); } }; - struct IpV4Types { + struct IpTypes { + // See http://www.iana.org/assignments/protocol-numbers + // Also used by IPv6 typedef boost::uint16_t key_t; }; class IpV4Packet - : public Packet, - public Parse_IpV4, - public PacketRegistryMixin + : public Packet, + public Parse_IpV4, + public PacketRegistryMixin { - using PacketRegistryMixin::registerInterpreter; + using PacketRegistryMixin::registerInterpreter; public: /////////////////////////////////////////////////////////////////////////// // Types @@ -103,7 +105,7 @@ namespace pkf { friend class Packet; }; -}} +} ///////////////////////////////hh.e//////////////////////////////////////// @@ -115,5 +117,8 @@ namespace pkf { // Local Variables: // mode: c++ -// c-file-style: "satcom" +// fill-column: 100 +// c-file-style: "senf" +// indent-tabs-mode: nil +// ispell-local-dictionary: "american" // End: