IEEE 802.11 compounds and operations. More...
Namespaces | |
namespace | anon |
namespace | ctl |
namespace | data |
namespace | dissector_status |
namespace | internals |
namespace | merge_helpers |
namespace | mgt |
namespace | similarity_helpers |
namespace | subtype |
namespace | type |
Classes | |
struct | dissector_default_hooks |
Default (empty) hooks to be used with dissector. More... | |
struct | dissector |
IEEE 802.11 frame parser. More... | |
struct | ssid_elt |
struct | essid |
struct | bssid_address_hooks |
Helper hooks for bssid_address(). More... | |
struct | time_converter |
Convert a time_tracker microsecond count to various PCAP and PHY fields. More... | |
struct | timestamp |
IEEE 802.11 timestamp frame element. More... | |
struct | unique_id_factory< hsh_80211_id > |
struct | unique_id_factory< hsh_80211_x_id > |
struct | unique_id_factory< hsh_en2_id > |
struct | unique_id_factory< seq_bss_tmp_id > |
struct | unique_id_factory< seq_dst_bss_tmp_id > |
struct | unique_id_factory< seq_src_bss_tmp_id > |
struct | unique_id_factory< seq_tmp_id > |
struct | unique_id_factory< src_bss_tmp_id > |
struct | unique_id_factory< tmp_id > |
struct | unique_id |
Identifier for uniquely identifiable frames. More... | |
Typedefs | |
typedef tool::addr< uint8_t, 6, true, ':'> | addr |
typedef tool::mapping< addr, unsigned, internals::addr_mapping_factory > | addr_mapping |
typedef unique_id < internals::hash_value, internals::empty < internals::hsh_80211_tag > > | hsh_80211_id |
typedef unique_id < internals::hash_value, internals::empty < internals::hsh_80211_x_tag > > | hsh_80211_x_id |
typedef unique_id < internals::hash_value, internals::empty < internals::hsh_en2_tag > > | hsh_en2_id |
typedef unique_id < internals::adapter< uint16_t, internals::seq_bss_tmp_tag1 > , internals::adapter< unsigned, internals::seq_bss_tmp_tag2 > , timestamp > | seq_bss_tmp_id |
typedef unique_id < internals::adapter< uint16_t, internals::seq_dst_bss_tmp_tag1 > , internals::adapter< unsigned, internals::seq_dst_bss_tmp_tag2 > , internals::adapter< unsigned, internals::seq_dst_bss_tmp_tag3 > , timestamp > | seq_dst_bss_tmp_id |
typedef unique_id < internals::adapter< uint16_t, internals::seq_src_bss_tmp_tag1 > , internals::adapter< unsigned, internals::seq_src_bss_tmp_tag2 > , internals::adapter< unsigned, internals::seq_src_bss_tmp_tag3 > , timestamp > | seq_src_bss_tmp_id |
typedef unique_id < internals::adapter< uint16_t, internals::seq_tmp_tag > , timestamp > | seq_tmp_id |
typedef unique_id < internals::adapter< unsigned, internals::src_bss_tmp_tag1 > , internals::adapter< unsigned, internals::src_bss_tmp_tag2 > , timestamp > | src_bss_tmp_id |
typedef unique_id< timestamp > | tmp_id |
Enumerations | |
enum | { similarity_score_limit = 250000 } |
Functions | |
template<class Phy , class AnonPolicy , class S > | |
void | anonymize (AnonPolicy &anon_policy, pkt::packet< S > &frm) |
template<class Phy , class AnonPolicy > | |
void | anonymize (AnonPolicy &anon_policy, pkt::metadata &meta, void *const bytes, const bool swapped=false, const std::string *const pkt_str=0) |
template<class PhyH , class Hooks , class Src > | |
dissector< Hooks > | dissect (const pkt::packet< Src > &frm, const Hooks &hooks=Hooks()) |
std::ostream & | operator<< (std::ostream &o, const essid &s) |
std::istream & | operator>> (std::istream &i, essid &s) |
unsigned | protocol_version_of (const void *) |
type::frame_type | type_of (const void *) |
unsigned | subtype_of (const void *) |
uint8_t | control_flags_of (const void *) |
bool | control_flag (const unsigned flag, const void *frame) |
bool | to_ds (const void *) |
bool | from_ds (const void *) |
unsigned | duration_of (const void *) |
boost::optional< unsigned > | fragment_number_of (const void *, size_t caplen) |
boost::optional< unsigned > | sequence_number_of (const void *, size_t caplen) |
const addr * | transmitter_address (const void *frame) |
const addr * | bssid_address (const void *, size_t caplen=30) |
std::ostream & | operator<< (std::ostream &, const timestamp &) |
template<class UniqueId , class PhyHeader , template< class, class, class > class Intersector, template< class, class, class, class > class Merger, class C > | |
std::string | merge (C &traces, opt::list &options) |
template<class UniqueId , class PhyHeader , template< class, class, class > class Intersector, template< class, class, class, class > class Merger, class T1 , class T2 > | |
void | merge (T1 &t1, T2 &t2, const std::string &output, opt::list &options) |
template<class UniqueId , class PhyHeader , template< class, class, class > class Intersector, template< class, class, class, class > class Merger, class C > | |
std::string | merge_and_synchronize (C &traces, opt::list &options) |
template<class UniqueId , class PhyHeader , template< class, class, class > class Intersector, class C > | |
std::set< boost::tuple < unsigned, typename C::iterator, typename C::iterator > > | similarity (C &traces, opt::list &options) |
WP_define_addr_tmp_id (dst, mgt::header::da) WP_define_addr_tmp_id(src | |
template<class Id1 , class Id2 , class Id3 , class Id4 > | |
std::ostream & | operator<< (std::ostream &, const unique_id< Id1, Id2, Id3, Id4 > &) |
IEEE 802.11 compounds and operations.
typedef tool::mapping<addr, unsigned, internals::addr_mapping_factory> wpl::wifi::addr_mapping |
IEEE 802.11 address to integer mapping designed to be stored into a database file.
Load the mapping from the file at creation when the file exists. Store it at deletion so it could be used later, or loaded in a database using a LOAD DATA INFILE SQL command.
anonymous enum |
const addr * wpl::wifi::bssid_address | ( | const void * | frame, | |
size_t | caplen = 30 | |||
) | [inline] |
Get a pointer to the frame's BSSID
address.
When the frame holds an address that represents a BSSID
address, return a pointer to it. Return 0 else.
Some frames holds multiple BSSID
addresses (data frames with both the To DS and From DS flags set). In this case, return the transmitter BSSID
address.
dissector< Hooks > wpl::wifi::dissect | ( | const pkt::packet< Src > & | frm, | |
const Hooks & | hooks = Hooks () | |||
) | [inline] |
Dissect a IEEE 802.11 frame given a PCAP frame descriptor .
This function extracts the IEEE 802.11 content of a PCAP frame, builds a dissector object and use it to parse the extracted frame.
[in] | frm | PCAP frame descriptor of the frame. |
std::ostream & wpl::wifi::operator<< | ( | std::ostream & | os, | |
const unique_id< Id1, Id2, Id3, Id4 > & | ui | |||
) | [inline] |
Dump a uniquely identifiable frame onto a C++ stream.
const addr * wpl::wifi::transmitter_address | ( | const void * | frame | ) | [inline] |
Get a pointer to the frame's transmitter address.
When the frame holds the address of its transmitter, return a pointer to it. Return 0 else. Note that this function extracts the transmitter address, not the sender address.