Skip to content
Snippets Groups Projects
Commit 4e84ca12 authored by tho's avatar tho
Browse files

completed RadiotapPacket::dump()

parent 2ceb0b07
No related branches found
No related tags found
No related merge requests found
...@@ -34,24 +34,42 @@ ...@@ -34,24 +34,42 @@
prefix_ void senf::RadiotapPacketType::dump(packet p, std::ostream &os) prefix_ void senf::RadiotapPacketType::dump(packet p, std::ostream &os)
{ {
boost::io::ios_all_saver ias(os); boost::io::ios_all_saver ias(os);
os << "Radiotap:\n" os << "Radiotap:\n"
<< " Version : " << unsigned (p->version()) << "\n" << " Version : " << unsigned( p->version()) << "\n"
<< " Length : " << unsigned (p->length()) << "\n"; << " Length : " << unsigned( p->length()) << "\n";
if (p->has_dbmAntennaSignal()) if (p->has_tsft())
os << " Signal : " << signed (p-> dbmAntennaSignal()) << "\n"; os << " MAC timestamp : " << unsigned( p->tsft()) << "\n";
// TODO: flags
if (p->has_tsft()) if (p->has_tsft())
os << " MAC timestamp : " << unsigned (p->tsft()) << "\n"; os << " Rate : " << unsigned( p->rate()) << "\n";
// TODO: channelOptions
if (p->has_fhss())
os << " FHSS : " << unsigned( p->fhss()) << "\n";
if (p->has_dbmAntennaSignal())
os << " Antenna Signal (dBm): " << signed( p->dbmAntennaSignal()) << "\n";
if (p->has_dbmAntennaNoise()) if (p->has_dbmAntennaNoise())
os << " Noise : " << signed (p-> dbmAntennaNoise()) << "\n"; os << " Antenna Noise (dBm) : " << signed( p->dbmAntennaNoise()) << "\n";
if (p->has_lockQuality())
os << " Lock Quality : " << unsigned( p->lockQuality()) << "\n";
if (p->has_txAttenuation())
os << " txAttenuation : " << unsigned( p->txAttenuation()) << "\n";
if (p->has_dbTxAttenuation())
os << " dbTxAttenuation : " << unsigned( p->dbTxAttenuation()) << "\n";
if (p->has_dbmTxAttenuation())
os << " dbmTxAttenuation : " << signed( p->dbmTxAttenuation()) << "\n";
if (p->has_antenna())
os << " Antenna : " << unsigned( p->antenna()) << "\n";
if (p->has_dbAntennaSignal())
os << " Antenna Signal (dB) : " << unsigned( p->dbAntennaSignal()) << "\n";
if (p->has_dbAntennaNoise())
os << " Antenna Noise (dB) : " << unsigned( p->dbAntennaNoise()) << "\n";
if (p->has_fcs())
os << " FCS : " << unsigned( p->fcs()) << "\n";
} }
prefix_ void senf::RadiotapPacketType::finalize(packet p) prefix_ void senf::RadiotapPacketType::finalize(packet p)
{ {
//TODO p->length() << senf::bytes( p.parser());
p->length() << p.size();
} }
prefix_ senf::PacketInterpreterBase::factory_t senf::RadiotapPacketType::nextPacketType(packet p) prefix_ senf::PacketInterpreterBase::factory_t senf::RadiotapPacketType::nextPacketType(packet p)
......
...@@ -21,9 +21,7 @@ ...@@ -21,9 +21,7 @@
// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
/** \file /** \file
\brief Radiotap header \n \brief Radiotap header */
<b>Radiotap uses least significant bit byte order</b>
*/
#ifndef HH_SENF_Packets_80211Bundle_RadiotapPacket_ #ifndef HH_SENF_Packets_80211Bundle_RadiotapPacket_
#define HH_SENF_Packets_80211Bundle_RadiotapPacket_ 1 #define HH_SENF_Packets_80211Bundle_RadiotapPacket_ 1
...@@ -34,9 +32,8 @@ namespace senf ...@@ -34,9 +32,8 @@ namespace senf
{ {
/** \brief Parse Flag field in Radiotap header /** \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 senf::PacketParserBase
{ {
...@@ -154,27 +151,27 @@ namespace senf ...@@ -154,27 +151,27 @@ namespace senf
(cond ? (size - (parser##__offset() + \ (cond ? (size - (parser##__offset() + \
senf::bytes(parser##_())) % size) % size : 0) , 0 ); senf::bytes(parser##_())) % size) % size : 0) , 0 );
OPTIONAL_FIELD ( tsft, UInt64LSBParser ); OPTIONAL_FIELD ( tsft, UInt64LSBParser );
OPTIONAL_FIELD ( flags, RadiotapPacketParser_Flags ); OPTIONAL_FIELD ( flags, RadiotapPacketParser_Flags );
OPTIONAL_FIELD ( rate, UInt8Parser ); OPTIONAL_FIELD ( rate, UInt8Parser );
SKIP_OPTIONAL_PADDING ( channelOptionsPresent(), rate, 2 ); SKIP_OPTIONAL_PADDING ( channelOptionsPresent(), rate, 2 );
OPTIONAL_FIELD ( channelOptions, RadiotapPacketParser_ChannelOptions ) ; OPTIONAL_FIELD ( channelOptions, RadiotapPacketParser_ChannelOptions );
SKIP_OPTIONAL_PADDING ( fhssPresent(), channelOptions, 2 ); SKIP_OPTIONAL_PADDING ( fhssPresent(), channelOptions, 2 );
OPTIONAL_FIELD ( fhss, UInt16LSBParser ); OPTIONAL_FIELD ( fhss, UInt16LSBParser );
OPTIONAL_FIELD ( dbmAntennaSignal, Int8Parser ); OPTIONAL_FIELD ( dbmAntennaSignal, Int8Parser );
OPTIONAL_FIELD ( dbmAntennaNoise, Int8Parser ); OPTIONAL_FIELD ( dbmAntennaNoise, Int8Parser );
SKIP_OPTIONAL_PADDING ( lockQualityPresent(), dbmAntennaNoise, 2 ); SKIP_OPTIONAL_PADDING ( lockQualityPresent(), dbmAntennaNoise, 2 );
OPTIONAL_FIELD ( lockQuality, UInt16LSBParser ); OPTIONAL_FIELD ( lockQuality, UInt16LSBParser );
SKIP_OPTIONAL_PADDING ( txAttenuationPresent(), lockQuality, 2 ); SKIP_OPTIONAL_PADDING ( txAttenuationPresent(), lockQuality, 2 );
OPTIONAL_FIELD ( txAttenuation, UInt16LSBParser ); OPTIONAL_FIELD ( txAttenuation, UInt16LSBParser );
SKIP_OPTIONAL_PADDING ( dbTxAttenuationPresent(), txAttenuation, 2 ); SKIP_OPTIONAL_PADDING ( dbTxAttenuationPresent(), txAttenuation, 2 );
OPTIONAL_FIELD ( dbTxAttenuation, UInt16LSBParser ); OPTIONAL_FIELD ( dbTxAttenuation, UInt16LSBParser );
OPTIONAL_FIELD ( dbmTxAttenuation, Int8Parser ); OPTIONAL_FIELD ( dbmTxAttenuation, Int8Parser );
OPTIONAL_FIELD ( antenna, UInt8Parser ); OPTIONAL_FIELD ( antenna, UInt8Parser );
OPTIONAL_FIELD ( dbAntennaSignal, UInt8Parser ); OPTIONAL_FIELD ( dbAntennaSignal, UInt8Parser );
OPTIONAL_FIELD ( dbAntennaNoise, UInt8Parser ); OPTIONAL_FIELD ( dbAntennaNoise, UInt8Parser );
SKIP_OPTIONAL_PADDING ( fcsPresent(), dbAntennaNoise, 4 ); SKIP_OPTIONAL_PADDING ( fcsPresent(), dbAntennaNoise, 4 );
OPTIONAL_FIELD ( fcs, UInt32Parser ); OPTIONAL_FIELD ( fcs, UInt32Parser );
SENF_PARSER_INIT() { SENF_PARSER_INIT() {
version() = 0; version() = 0;
...@@ -190,7 +187,9 @@ namespace senf ...@@ -190,7 +187,9 @@ namespace senf
\par Fields: \par Fields:
\ref RadiotapPacketParser \ref RadiotapPacketParser
\see http://www.radiotap.org/
\ingroup protocolbundle_80211 \ingroup protocolbundle_80211
*/ */
struct RadiotapPacketType struct RadiotapPacketType
...@@ -208,7 +207,6 @@ namespace senf ...@@ -208,7 +207,6 @@ namespace senf
static void dump(packet p, std::ostream &os); static void dump(packet p, std::ostream &os);
static void finalize(packet p); static void finalize(packet p);
static factory_t nextPacketType(packet p); static factory_t nextPacketType(packet p);
}; };
typedef senf::ConcretePacket<RadiotapPacketType> RadiotapPacket; typedef senf::ConcretePacket<RadiotapPacketType> RadiotapPacket;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment