X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FDefaultBundle%2FEthernetPacket.hh;h=aadcddeac08fc04c3c74182a6c0f05e18376b256;hb=64a21c02b81501982ba4406ea69a388825c23057;hp=3dcddc6f4fef53ea4743c80dbe54b5e7162342d5;hpb=6a3a31fb7b2d2a5e8ae6d67d50797700274fb34e;p=senf.git diff --git a/Packets/DefaultBundle/EthernetPacket.hh b/Packets/DefaultBundle/EthernetPacket.hh index 3dcddc6..aadcdde 100644 --- a/Packets/DefaultBundle/EthernetPacket.hh +++ b/Packets/DefaultBundle/EthernetPacket.hh @@ -1,9 +1,9 @@ -// $id: EthernetPacket.hh 299 2007-07-10 21:23:49Z g0dil $ +// $Id$ // // Copyright (C) 2006 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) -// Stefan Bund +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY +// Thorsten Horstmann // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -43,9 +43,9 @@ namespace senf { \see MACAddress \n EthernetPacket */ - struct Parse_MAC : public PacketParserBase + struct MACAddressParser : public PacketParserBase { - Parse_MAC(data_iterator i, state_type s) : PacketParserBase(i,s,fixed_bytes) {} + MACAddressParser(data_iterator i, state_type s) : PacketParserBase(i,s,fixed_bytes) {} /////////////////////////////////////////////////////////////////////////// @@ -57,7 +57,7 @@ namespace senf { operator value_type () { return value(); } byte & operator[](size_type index) { return *boost::next(i(),index); } - Parse_MAC const & operator= (value_type const & other) { value(other); return *this; } + MACAddressParser const & operator= (value_type const & other) { value(other); return *this; } }; /** \brief Parse an Ethernet packet @@ -66,15 +66,15 @@ namespace senf { \see EthernetPacketType */ - struct Parse_Ethernet : public PacketParserBase + struct EthernetPacketParser : public PacketParserBase { # include SENF_FIXED_PARSER() - SENF_PARSER_FIELD( destination, Parse_MAC ); - SENF_PARSER_FIELD( source, Parse_MAC ); - SENF_PARSER_FIELD( type_length, Parse_UInt16 ); + SENF_PARSER_FIELD( destination, MACAddressParser ); + SENF_PARSER_FIELD( source, MACAddressParser ); + SENF_PARSER_FIELD( type_length, UInt16Parser ); - SENF_PARSER_FINALIZE(Parse_Ethernet); + SENF_PARSER_FINALIZE(EthernetPacketParser); }; /** \brief EtherType registry @@ -95,7 +95,7 @@ namespace senf { \ref EthernetPacket \par Fields: - \ref Parse_Ethernet + \ref EthernetPacketParser \par Associated registries: \ref EtherTypes @@ -112,10 +112,9 @@ namespace senf { #ifndef DOXYGEN typedef PacketTypeMixin mixin; typedef ConcretePacket packet; - typedef Parse_Ethernet parser; + typedef EthernetPacketParser parser; #endif using mixin::nextPacketRange; - // using mixin::nextPacketType; using mixin::initSize; using mixin::init; @@ -133,7 +132,7 @@ namespace senf { \see EthVLanPacketType */ - struct Parse_EthVLan : public PacketParserBase + struct EthVLanPacketParser : public PacketParserBase { # include SENF_FIXED_PARSER() @@ -141,9 +140,9 @@ namespace senf { SENF_PARSER_BITFIELD( cfi, 1, bool ); SENF_PARSER_BITFIELD( vlanId, 12, unsigned ); - SENF_PARSER_FIELD( type, Parse_UInt16 ); + SENF_PARSER_FIELD( type, UInt16Parser ); - SENF_PARSER_FINALIZE(Parse_EthVLan); + SENF_PARSER_FINALIZE(EthVLanPacketParser); }; /** \brief Ethernet VLAN tag @@ -152,7 +151,7 @@ namespace senf { \ref EthVLanPacket \par Fields: - \ref Parse_EthVLan + \ref EthVLanPacketParser \par Associated registries: \ref EtherTypes @@ -169,7 +168,7 @@ namespace senf { #ifndef DOXYGEN typedef PacketTypeMixin mixin; typedef ConcretePacket packet; - typedef Parse_EthVLan parser; + typedef EthVLanPacketParser parser; #endif using mixin::nextPacketRange; using mixin::nextPacketType; @@ -178,7 +177,7 @@ namespace senf { /** \todo Add LLC/SNAP support -> only use the registry for type() values >=1536, otherwise expect an LLC header */ - static registry_key_t nextPacketKey(packet p) + static key_t nextPacketKey(packet p) { return p->type(); } static void dump(packet p, std::ostream & os); @@ -188,71 +187,8 @@ namespace senf { /** \brief Ethernet VLAN tag typedef */ typedef ConcretePacket EthVLanPacket; - - /** \brief Parse an ethernet LLC/SNAP header - - \todo document me - - \see EthVLanPacketType - */ - struct Parse_EthLlcSnapPacket : public PacketParserBase - { -# include SENF_FIXED_PARSER() - - SENF_PARSER_FIELD( dsap, Parse_UInt8 ); - SENF_PARSER_FIELD( ssap, Parse_UInt8 ); - SENF_PARSER_FIELD( ctrl, Parse_UInt8 ); - - SENF_PARSER_FIELD( protocolId, Parse_UInt24 ); - SENF_PARSER_FIELD( type, Parse_UInt24 ); - - SENF_PARSER_FINALIZE(Parse_EthLlcSnapPacket); - }; - - /** \brief Ethernet LLC/SNAP header - - \todo document me - - \par Packet type (typedef): - \ref EthLlcSnapPacketType - - \par Fields: - \ref Parse_EthLlcSnapPacket - - \par Associated registries: - \ref EtherTypes - - \par Finalize action: - XXXX - - \ingroup protocolbundle_default - */ - struct EthLlcSnapPacketType - : public PacketTypeBase, - public PacketTypeMixin - { -#ifndef DOXYGEN - typedef PacketTypeMixin mixin; - typedef ConcretePacket packet; - typedef Parse_EthLlcSnapPacket parser; -#endif - using mixin::nextPacketRange; - using mixin::nextPacketType; - using mixin::initSize; - using mixin::init; - - static registry_key_t nextPacketKey(packet p) - { return p->type(); } - - static void dump(packet p, std::ostream & os); - static void finalize(packet p); - }; - - /** \brief Ethernet VLAN tag typedef */ - typedef ConcretePacket EthLlcSnapPacket; } - ///////////////////////////////hh.e//////////////////////////////////////// #endif #ifndef SENF_PACKETS_DECL_ONLY