PPI: Fix senf::ppi::init() event hook scheduling
[senf.git] / Packets / 80211Bundle / RadiotapPacket.hh
index 28f1beb..ebea567 100644 (file)
@@ -21,9 +21,7 @@
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 /** \file
-    \brief Radiotap header \n
-        <b>Radiotap uses least significant bit byte order</b>
-    */
+    \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
-     * <b>Re-ordering of bits due to LSB byte order</b>
-     * (see http://www.radiotap.org/)
 
+        <b>Re-ordering of bits due to LSB byte order</b>
      */
-    struct RadiotapPacketParser_Flags : public senf::PacketParserBase
+    struct RadiotapPacketParser_Flags : public PacketParserBase
     {
     #   include SENF_FIXED_PARSER()
 
@@ -58,7 +55,7 @@ namespace senf
 
         <b>Re-ordering of bits due to LSB byte order</b>
      */
-    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,7 +143,7 @@ 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) \
@@ -154,33 +151,33 @@ namespace senf
                     (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          ); //<pkgdraw: size=8
+        OPTIONAL_FIELD        ( rate,                     UInt8Parser                         );
+        SKIP_OPTIONAL_PADDING ( channelOptionsPresent(),  rate, 2                             );
+        OPTIONAL_FIELD        ( channelOptions,           RadiotapPacketParser_ChannelOptions ); //<pkgdraw: size=32
+        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                        );
 
         SENF_PARSER_INIT() {
             version() = 0;
         }
 
-        SENF_PARSER_FINALIZE(RadiotapPacketParser);
+        SENF_PARSER_FINALIZE( RadiotapPacketParser );
     };
 
     /** \brief Radiotap packet
@@ -190,16 +187,19 @@ namespace senf
 
         \par Fields:
             \ref RadiotapPacketParser
-
+            \image html RadiotapPacket.png
+        
+        \see http://www.radiotap.org/
+        
         \ingroup protocolbundle_80211
      */
     struct RadiotapPacketType
-        : public senf::PacketTypeBase,
-          public senf::PacketTypeMixin<RadiotapPacketType>
+        : public PacketTypeBase,
+          public PacketTypeMixin<RadiotapPacketType>
     {
-        typedef senf::PacketTypeMixin<RadiotapPacketType> mixin;
-        typedef senf::ConcretePacket<RadiotapPacketType> packet;
-        typedef senf::RadiotapPacketParser parser;
+        typedef PacketTypeMixin<RadiotapPacketType> mixin;
+        typedef ConcretePacket<RadiotapPacketType> 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<RadiotapPacketType> RadiotapPacket;
+    typedef ConcretePacket<RadiotapPacketType> RadiotapPacket;
 }
 
 #endif