X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2F80211Bundle%2FRadiotapPacket.hh;h=178556b201d65f80c2c5ed088fa1390f85ead3bc;hb=f7dcc6267c7637efaba2ebe5a20df5f849a68d39;hp=ea6eee4b2e01ac3283b5ea72155e956b3069bfc5;hpb=c1a83da548df3b5cb63e201465f1b9cd79e320ed;p=senf.git diff --git a/Packets/80211Bundle/RadiotapPacket.hh b/Packets/80211Bundle/RadiotapPacket.hh index ea6eee4..178556b 100644 --- a/Packets/80211Bundle/RadiotapPacket.hh +++ b/Packets/80211Bundle/RadiotapPacket.hh @@ -21,9 +21,7 @@ // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. /** \file - \brief Radiotap header \n - Radiotap uses least significant bit byte order - */ + \brief Radiotap header */ #ifndef HH_SENF_Packets_80211Bundle_RadiotapPacket_ #define HH_SENF_Packets_80211Bundle_RadiotapPacket_ 1 @@ -34,11 +32,10 @@ namespace senf { /** \brief Parse Flag field in Radiotap header - * Re-ordering of bits due to LSB byte order - * (see http://www.radiotap.org/) + Re-ordering of bits due to LSB byte order */ - struct RadiotapPacketParser_Flags : public senf::PacketParserBase + struct RadiotapPacketParser_Flags : public PacketParserBase { # include SENF_FIXED_PARSER() @@ -58,7 +55,7 @@ namespace senf Re-ordering of bits due to LSB byte order */ - struct RadiotapPacketParser_ChannelOptions : public senf::PacketParserBase + struct RadiotapPacketParser_ChannelOptions : public PacketParserBase { # include SENF_FIXED_PARSER() @@ -98,7 +95,7 @@ namespace senf \todo extended present field (bit 31 of present field is set) */ - struct RadiotapPacketParser : public senf::PacketParserBase + struct RadiotapPacketParser : public PacketParserBase { # include SENF_PARSER() @@ -146,41 +143,41 @@ namespace senf #define OPTIONAL_FIELD(name, parser) SENF_PARSER_VARIANT \ ( name##_, name##Present, \ ( novalue( disable_##name, VoidPacketParser )) \ - ( id( name, parser )) ); + ( id( name, parser )) ) - /* */ + /* macro to create padding parser */ #define SKIP_OPTIONAL_PADDING(cond, parser, size) \ SENF_PARSER_SKIP( \ (cond ? (size - (parser##__offset() + \ senf::bytes(parser##_())) % size) % size : 0) , 0 ); - OPTIONAL_FIELD ( tsft, UInt64LSBParser ); - OPTIONAL_FIELD ( flags, RadiotapPacketParser_Flags ); - OPTIONAL_FIELD ( rate, UInt8Parser ); - SKIP_OPTIONAL_PADDING(channelOptionsPresent(), rate, 2); - OPTIONAL_FIELD ( channelOptions, RadiotapPacketParser_ChannelOptions ) ; - SKIP_OPTIONAL_PADDING(fhssPresent(), channelOptions, 2); - OPTIONAL_FIELD ( fhss, UInt16LSBParser ); - OPTIONAL_FIELD ( dbmAntennaSignal, Int8Parser ); - OPTIONAL_FIELD ( dbmAntennaNoise, Int8Parser ); - SKIP_OPTIONAL_PADDING(lockQualityPresent(), dbmAntennaNoise, 2); - OPTIONAL_FIELD ( lockQuality, UInt16LSBParser ); - SKIP_OPTIONAL_PADDING(txAttenuationPresent(), lockQuality, 2); - OPTIONAL_FIELD ( txAttenuation, UInt16LSBParser ); - SKIP_OPTIONAL_PADDING(dbTxAttenuationPresent(), txAttenuation, 2); - OPTIONAL_FIELD ( dbTxAttenuation, UInt16LSBParser ); - OPTIONAL_FIELD ( dbmTxAttenuation, Int8Parser ); - OPTIONAL_FIELD ( antenna, UInt8Parser ); - OPTIONAL_FIELD ( dbAntennaSignal, UInt8Parser ); - OPTIONAL_FIELD ( dbAntennaNoise, UInt8Parser ); - SKIP_OPTIONAL_PADDING(fcsPresent(), dbAntennaNoise, 4) - OPTIONAL_FIELD ( fcs, UInt32Parser ); + OPTIONAL_FIELD ( tsft, UInt64LSBParser ); + OPTIONAL_FIELD ( flags, RadiotapPacketParser_Flags ); // + : public PacketTypeBase, + public PacketTypeMixin { - typedef senf::PacketTypeMixin mixin; - typedef senf::ConcretePacket packet; - typedef senf::RadiotapPacketParser parser; + typedef PacketTypeMixin mixin; + typedef ConcretePacket packet; + typedef RadiotapPacketParser parser; using mixin::nextPacketRange; using mixin::init; @@ -208,10 +208,9 @@ namespace senf static void dump(packet p, std::ostream &os); static void finalize(packet p); static factory_t nextPacketType(packet p); - }; - typedef senf::ConcretePacket RadiotapPacket; + typedef ConcretePacket RadiotapPacket; } #endif