30 #include <tins/config.h>
32 #if !defined(TINS_RADIOTAP_PARSER_H) && defined(TINS_HAVE_DOT11)
33 #define TINS_RADIOTAP_PARSER_H
36 #include <tins/macros.h>
37 #include <tins/radiotap.h>
38 #include <tins/pdu_option.h>
170 const uint8_t* find_options_start()
const;
171 bool advance_to_first_field();
172 bool advance_to_next_field();
173 bool skip_current_field();
174 bool advance_to_next_namespace();
176 void load_current_flags();
177 bool is_field_set(uint32_t bit,
const RadioTapFlags* flags)
const;
179 const uint8_t* start_;
181 const uint8_t* current_ptr_;
182 uint64_t current_bit_;
183 uint32_t current_flags_;
184 uint32_t namespace_index_;
Represents a PDU option field.
Definition: pdu_option.h:201
PresentFlags
Flags used in the present field.
Definition: radiotap.h:85
Allows parsing RadioTap options.
Definition: radiotap_parser.h:52
bool advance_field()
Advances to the next option.
Definition: radiotap_parser.cpp:189
RadioTap::PresentFlags namespace_flags() const
Definition: radiotap_parser.cpp:219
static const FieldMetadata RADIOTAP_METADATA[]
Definition: radiotap_parser.h:74
bool has_field(RadioTap::PresentFlags flag) const
Indicates whether the provided field is set.
Definition: radiotap_parser.cpp:236
RadioTap::PresentFlags current_field() const
Definition: radiotap_parser.cpp:173
static const uint32_t MAX_RADIOTAP_FIELD
Definition: radiotap_parser.h:79
uint32_t current_namespace_index() const
Gets a 0 index based namespace index.
Definition: radiotap_parser.cpp:169
NamespaceType current_namespace() const
Definition: radiotap_parser.cpp:165
NamespaceType
Definition: radiotap_parser.h:57
const uint8_t * current_option_ptr() const
Gets the pointer at which the current option is located.
Definition: radiotap_parser.cpp:185
RadioTapParser(const std::vector< uint8_t > &buffer)
Constructs a RadioTap parser around a payload.
Definition: radiotap_parser.cpp:142
bool skip_to_field(RadioTap::PresentFlags flag)
Skips all fields until the provided one is found.
Definition: radiotap_parser.cpp:225
bool advance_namespace()
Advances to the next namespace.
Definition: radiotap_parser.cpp:212
bool has_fields() const
Definition: radiotap_parser.cpp:232
RadioTap::option current_option()
Definition: radiotap_parser.cpp:177
The Tins namespace.
Definition: address_range.h:38
Definition: radiotap_parser.cpp:103