Parse an Radiotap header. More...
#include <senf/Packets/80211Bundle/RadiotapPacket.hh>
Public Types | |
enum | PresentIndex { TSFT_INDEX = 0, FLAGS_INDEX = 1, RATE_INDEX = 2, CHANNEL_INDEX = 3, FHSS_INDEX = 4, DBM_ANTSIGNAL_INDEX = 5, DBM_ANTNOISE_INDEX = 6, LOCK_QUALITY_INDEX = 7, TX_ATTENUATION_INDEX = 8, DB_TX_ATTENUATION_INDEX = 9, DBM_TX_POWER_INDEX = 10, ANTENNA_INDEX = 11, DB_ANTSIGNAL_INDEX = 12, DB_ANTNOISE_INDEX = 13, RX_FLAGS_INDEX = 14, TX_FLAGS_INDEX = 15, RTS_RETRIES_INDEX = 16, DATA_RETRIES_INDEX = 17, MCS_INDEX = 19, A_MPDU_STATUS_INDEX = 20, VHT_INDEX = 21, MAX_INDEX = 21, RADIOTOP_NS_INDEX = 29, VENDOR_NS_INDEX = 30, EXTENDED_BITMASK_INDEX = 31 } |
enum | PresentFlag { TSFT_FLAG = (1<<TSFT_INDEX), FLAGS_FLAG = (1<<FLAGS_INDEX), RATE_FLAG = (1<<RATE_INDEX), CHANNEL_FLAG = (1<<CHANNEL_INDEX), FHSS_FLAG = (1<<FHSS_INDEX), DBM_ANTSIGNAL_FLAG = (1<<DBM_ANTSIGNAL_INDEX), DBM_ANTNOISE_FLAG = (1<<DBM_ANTNOISE_INDEX), LOCK_QUALITY_FLAG = (1<<LOCK_QUALITY_INDEX), TX_ATTENUATION_FLAG = (1<<TX_ATTENUATION_INDEX), DB_TX_ATTENUATION_FLAG = (1<<DB_TX_ATTENUATION_INDEX), DBM_TX_POWER_FLAG = (1<<DBM_TX_POWER_INDEX), ANTENNA_FLAG = (1<<ANTENNA_INDEX), DB_ANTSIGNAL_FLAG = (1<<DB_ANTSIGNAL_INDEX), DB_ANTNOISE_FLAG = (1<<DB_ANTNOISE_INDEX), RX_FLAGS_FLAG = (1<<RX_FLAGS_INDEX), TX_FLAGS_FLAG = (1<<TX_FLAGS_INDEX), RTS_RETRIES_FLAG = (1<<RTS_RETRIES_INDEX), DATA_RETRIES_FLAG = (1<<DATA_RETRIES_INDEX), MCS_FLAG = (1<<MCS_INDEX), A_MPDU_STATUS_FLAG = (1<<A_MPDU_STATUS_INDEX), VHT_FLAG = (1<<VHT_INDEX), RADIOTOP_NS_FLAG = (1<<RADIOTOP_NS_INDEX), VENDOR_NS_FLAG = (1<<VENDOR_NS_INDEX), EXTENDED_BITMASK_FLAG = (1<<EXTENDED_BITMASK_INDEX) } |
typedef UInt8Parser | version_t |
typedef UInt16LSBParser | length_t |
Public Types inherited from senf::PacketParserBase | |
typedef detail::packet::iterator | data_iterator |
Raw data iterator type. More... | |
typedef detail::packet::size_type | size_type |
Unsigned integral type. More... | |
typedef detail::packet::difference_type | difference_type |
Signed integral type. More... | |
typedef detail::packet::byte | byte |
Unsigned 8bit value, the raw value type. More... | |
typedef PacketData * | state_type |
Type of the 'state' parameter. More... | |
typedef PacketParserBase | parser_base_type |
Base type of the next parser. More... | |
Public Member Functions | |
UInt8Parser | version () const |
UInt16LSBParser | length () const |
Public Member Functions inherited from senf::PacketParserBase | |
data_iterator | i () const |
Return beginning of data to parse. More... | |
data_iterator | i (size_type offset) const |
Return iterator offset bytes from the start. More... | |
state_type | state () const |
Return state of this parser. More... | |
PacketData & | data () const |
Access the packets raw data container. More... | |
void | init () const |
Default implementation. More... | |
Static Public Attributes | |
static unsigned const | FIELD_SIZE [MAX_INDEX+2] |
Protected Types | |
typedef UInt32LSBParser | presentFlags_t |
typedef UInt32LSBParser | presentFlags_ext1_t |
typedef UInt32LSBParser | presentFlags_ext2_t |
Protected Member Functions | |
UInt32LSBParser | presentFlags () const |
UInt32LSBParser | presentFlags_ext1 () const |
UInt32LSBParser | presentFlags_ext2 () const |
Protected Member Functions inherited from senf::PacketParserBase | |
ParserProtector | protect () const |
PacketParserBase (data_iterator i, state_type s) | |
Standard constructor. More... | |
PacketParserBase (data_iterator i, state_type s, size_type size) | |
Size checking constructor. More... | |
bool | check (size_type size) const |
Check size of data container. More... | |
void | validate (size_type size) const |
Validate size of data container. More... | |
template<class Parser > | |
Parser | parse (data_iterator i) const |
Create sub-parser. More... | |
template<class Parser , class Arg > | |
Parser | parse (Arg const &arg, data_iterator i) const |
Create sub-parser. More... | |
template<class Parser > | |
Parser | parse (size_type n) const |
Create sub-parser. More... | |
template<class Parser , class Arg > | |
Parser | parse (Arg const &arg, size_type n) const |
Create sub-parser. More... | |
void | defaultInit () const |
Default implementation. More... | |
Packet | packet () const |
Get packet this parser is parsing from. More... | |
void | resize (size_type oldSize, size_type newSize) |
Resize data container. More... | |
Parse an Radiotap header.
Parser implementing the Radiotap header
Radiotap requires that all fields in the radiotap header are aligned to natural boundaries. For radiotap, that means all 8-, 16-, 32-, and 64-bit fields must begin on 8-, 16-, 32-, and 64-bit boundaries, respectively. In this way, generators and parsers can avoid unaligned accesses to radiotap capture fields. Radiotap-compliant generators must insert padding before a capture field to ensure its natural alignment.
Definition at line 199 of file RadiotapPacket.hh.
Definition at line 209 of file RadiotapPacket.hh.
|
protected |
Definition at line 215 of file RadiotapPacket.hh.
|
protected |
Definition at line 216 of file RadiotapPacket.hh.
|
protected |
Definition at line 211 of file RadiotapPacket.hh.
Definition at line 206 of file RadiotapPacket.hh.
Definition at line 250 of file RadiotapPacket.hh.
Definition at line 218 of file RadiotapPacket.hh.
UInt16LSBParser senf::RadiotapPacket_HeaderParser::length | ( | ) | const |
|
protected |
|
protected |
|
protected |
UInt8Parser senf::RadiotapPacket_HeaderParser::version | ( | ) | const |
|
static |
Definition at line 278 of file RadiotapPacket.hh.