libtins
4.0
|
Class that represents an abstraction of the 802.11 control frames that contain a target address. More...
#include <dot11_control.h>
Public Member Functions | |
address_type | target_addr () const |
Getter for the target address field. | |
void | target_addr (const address_type &addr) |
Setter for the target address field. More... | |
Public Member Functions inherited from Tins::Dot11Control | |
Dot11Control (const address_type &dst_addr=address_type()) | |
Constructor for creating a 802.11 control frame PDU. More... | |
Dot11Control (const uint8_t *buffer, uint32_t total_sz) | |
Constructs a Dot11Control object from a buffer and adds all identifiable PDUs found in the buffer as children of this one. More... | |
PDUType | pdu_type () const |
Getter for the PDU's type. More... | |
bool | matches_flag (PDUType flag) const |
Check whether this PDU matches the specified flag. More... | |
Public Member Functions inherited from Tins::Dot11 | |
Dot11 (const address_type &dst_hw_addr=address_type()) | |
Constructs an 802.11 PDU. More... | |
Dot11 (const uint8_t *buffer, uint32_t total_sz) | |
Constructs 802.11 PDU from a buffer and adds all identifiable PDUs found in the buffer as children of this one. More... | |
small_uint< 2 > | protocol () const |
Getter for the protocol version field. More... | |
small_uint< 2 > | type () const |
Getter for the Type field. More... | |
small_uint< 4 > | subtype () const |
Getter for the Subtype field. More... | |
small_uint< 1 > | to_ds () const |
Getter for the To-DS field. More... | |
small_uint< 1 > | from_ds () const |
Getter for the From-DS field. More... | |
small_uint< 1 > | more_frag () const |
Getter for the More-Frag field. More... | |
small_uint< 1 > | retry () const |
Getter for the Retry field. More... | |
small_uint< 1 > | power_mgmt () const |
Getter for the Power-Management field. More... | |
small_uint< 1 > | more_data () const |
Getter for the More Data field. More... | |
small_uint< 1 > | wep () const |
Getter for the WEP field. More... | |
small_uint< 1 > | order () const |
Getter for the Order field. More... | |
uint16_t | duration_id () const |
Getter for the Duration-ID field. More... | |
address_type | addr1 () const |
Getter for the first address. More... | |
void | protocol (small_uint< 2 > new_proto) |
Setter for the protocol version field. More... | |
void | type (small_uint< 2 > new_type) |
Setter for the type field. More... | |
void | subtype (small_uint< 4 > new_subtype) |
Setter for the subtype field. More... | |
void | to_ds (small_uint< 1 > new_value) |
Setter for the To-DS field. More... | |
void | from_ds (small_uint< 1 > new_value) |
Setter for the From-DS field. More... | |
void | more_frag (small_uint< 1 > new_value) |
Setter for the More-Frag field. More... | |
void | retry (small_uint< 1 > new_value) |
Setter for the Retry field. More... | |
void | power_mgmt (small_uint< 1 > new_value) |
Setter for the Power-Management field. More... | |
void | more_data (small_uint< 1 > new_value) |
Setter for the More Data field. More... | |
void | wep (small_uint< 1 > new_value) |
Setter for the WEP field. More... | |
void | order (small_uint< 1 > new_value) |
Setter for the Order field. More... | |
void | duration_id (uint16_t new_duration_id) |
Setter for the Duration-ID field. More... | |
void | addr1 (const address_type &new_addr1) |
Setter for the first address. More... | |
void | send (PacketSender &sender, const NetworkInterface &iface) |
void | add_option (const option &opt) |
Adds a new option to this Dot11 PDU. More... | |
void | add_option (option &&opt) |
Adds a new option to this Dot11 PDU. More... | |
bool | remove_option (OptionTypes type) |
Removes a Dot11 option. More... | |
const option * | search_option (OptionTypes type) const |
Looks up a tagged option in the option list. More... | |
Dot11 * | clone () const |
const options_type & | options () const |
Getter for the option list. More... | |
Public Member Functions inherited from Tins::PDU | |
PDU () | |
Default constructor. | |
PDU (PDU &&rhs) TINS_NOEXCEPT | |
Move constructor. More... | |
PDU & | operator= (PDU &&rhs) TINS_NOEXCEPT |
Move assignment operator. More... | |
virtual | ~PDU () |
PDU destructor. More... | |
virtual uint32_t | trailer_size () const |
Trailer's size. More... | |
uint32_t | size () const |
The whole chain of PDU's size, including this one. More... | |
PDU * | inner_pdu () const |
Getter for the inner PDU. More... | |
PDU * | parent_pdu () const |
PDU * | release_inner_pdu () |
Releases the inner PDU. More... | |
void | inner_pdu (PDU *next_pdu) |
Sets the child PDU. More... | |
void | inner_pdu (const PDU &next_pdu) |
Sets the child PDU. More... | |
serialization_type | serialize () |
Serializes the whole chain of PDU's, including this one. More... | |
template<typename T > | |
T * | find_pdu (PDUType type=T::pdu_flag) |
Finds and returns the first PDU that matches the given flag. More... | |
template<typename T > | |
const T * | find_pdu (PDUType type=T::pdu_flag) const |
Finds and returns the first PDU that matches the given flag. More... | |
template<typename T > | |
T & | rfind_pdu (PDUType type=T::pdu_flag) |
Finds and returns the first PDU that matches the given flag. More... | |
template<typename T > | |
const T & | rfind_pdu (PDUType type=T::pdu_flag) const |
Finds and returns the first PDU that matches the given flag. More... | |
virtual PDU * | recv_response (PacketSender &sender, const NetworkInterface &iface) |
Receives a matching response for this packet. More... | |
virtual bool | matches_response (const uint8_t *ptr, uint32_t total_sz) const |
Check whether ptr points to a valid response for this PDU. More... | |
Protected Member Functions | |
Dot11ControlTA (const address_type &dst_addr=address_type(), const address_type &target_addr=address_type()) | |
Constructor for creating a 802.11 control frame TA PDU. More... | |
Dot11ControlTA (const uint8_t *buffer, uint32_t total_sz) | |
Constructs a Dot11ControlTA object from a buffer and adds all identifiable PDUs found in the buffer as children of this one. More... | |
uint32_t | header_size () const |
Returns the 802.11 frame's header length. More... | |
uint32_t | controlta_size () const |
Getter for the control ta additional fields size. | |
void | write_ext_header (Memory::OutputMemoryStream &stream) |
Protected Member Functions inherited from Tins::Dot11 | |
virtual void | write_fixed_parameters (Memory::OutputMemoryStream &stream) |
void | parse_tagged_parameters (Memory::InputMemoryStream &stream) |
void | add_tagged_option (OptionTypes opt, uint8_t len, const uint8_t *val) |
Protected Member Functions inherited from Tins::PDU | |
PDU (const PDU &other) | |
Copy constructor. | |
PDU & | operator= (const PDU &other) |
Copy assignment operator. | |
void | copy_inner_pdu (const PDU &pdu) |
Copy other PDU's inner PDU(if any). More... | |
virtual void | prepare_for_serialize () |
Prepares this PDU for serialization. More... | |
void | serialize (uint8_t *buffer, uint32_t total_sz) |
Serializes this PDU and propagates this action to child PDUs. More... | |
Additional Inherited Members | |
Public Types inherited from Tins::Dot11 | |
enum | Types { MANAGEMENT = 0, CONTROL = 1, DATA = 2 } |
Enum for the different types of 802.11 frames. | |
enum | OptionTypes { SSID, SUPPORTED_RATES, FH_SET, DS_SET, CF_SET, TIM, IBSS_SET, COUNTRY, HOPPING_PATTERN_PARAMS, HOPPING_PATTERN_TABLE, REQUEST_INFORMATION, BSS_LOAD, EDCA, TSPEC, TCLAS, SCHEDULE, CHALLENGE_TEXT, POWER_CONSTRAINT = 32, POWER_CAPABILITY, TPC_REQUEST, TPC_REPORT, SUPPORTED_CHANNELS, CHANNEL_SWITCH, MEASUREMENT_REQUEST, MEASUREMENT_REPORT, QUIET, IBSS_DFS, ERP_INFORMATION, TS_DELAY, TCLAS_PROCESSING, QOS_CAPABILITY = 46, RSN = 48, EXT_SUPPORTED_RATES = 50, VENDOR_SPECIFIC = 221 } |
Enum for the different types of tagged options. | |
enum | ManagementSubtypes { ASSOC_REQ = 0, ASSOC_RESP = 1, REASSOC_REQ = 2, REASSOC_RESP = 3, PROBE_REQ = 4, PROBE_RESP = 5, BEACON = 8, ATIM = 9, DISASSOC = 10, AUTH = 11, DEAUTH = 12 } |
Enum for the different subtypes of 802.11 management frames. | |
enum | ControlSubtypes { BLOCK_ACK_REQ = 8, BLOCK_ACK = 9, PS = 10, RTS = 11, CTS = 12, ACK = 13, CF_END = 14, CF_END_ACK = 15 } |
Enum for the different subtypes of 802.11 control frames. | |
enum | DataSubtypes { DATA_DATA = 0, DATA_CF_ACK = 1, DATA_CF_POLL = 2, DATA_CF_ACK_POLL = 3, DATA_NULL = 4, CF_ACK = 5, CF_POLL = 6, CF_ACK_POLL = 7, QOS_DATA_DATA = 8, QOS_DATA_CF_ACK = 9, QOS_DATA_CF_POLL = 10, QOS_DATA_CF_ACK_POLL = 11, QOS_DATA_NULL = 12 } |
Enum fro the different subtypes of 802.11 data frames. | |
typedef HWAddress< 6 > | address_type |
typedef PDUOption< uint8_t, Dot11 > | option |
IEEE 802.11 options struct. | |
typedef std::vector< option > | options_type |
Public Types inherited from Tins::PDU | |
enum | endian_type { BE, LE } |
enum | PDUType { RAW, ETHERNET_II, IEEE802_3, DOT3 = IEEE802_3, RADIOTAP, DOT11, DOT11_ACK, DOT11_ASSOC_REQ, DOT11_ASSOC_RESP, DOT11_AUTH, DOT11_BEACON, DOT11_BLOCK_ACK, DOT11_BLOCK_ACK_REQ, DOT11_CF_END, DOT11_DATA, DOT11_CONTROL, DOT11_DEAUTH, DOT11_DIASSOC, DOT11_END_CF_ACK, DOT11_MANAGEMENT, DOT11_PROBE_REQ, DOT11_PROBE_RESP, DOT11_PS_POLL, DOT11_REASSOC_REQ, DOT11_REASSOC_RESP, DOT11_RTS, DOT11_QOS_DATA, LLC, SNAP, IP, ARP, TCP, UDP, ICMP, BOOTP, DHCP, EAPOL, RC4EAPOL, RSNEAPOL, DNS, LOOPBACK, IPv6, ICMPv6, SLL, DHCPv6, DOT1Q, PPPOE, STP, PPI, IPSEC_AH, IPSEC_ESP, PKTAP, MPLS, UNKNOWN = 999, USER_DEFINED_PDU = 1000 } |
Enum which identifies each type of PDU. More... | |
typedef byte_array | serialization_type |
Static Public Member Functions inherited from Tins::Dot11 | |
static Dot11 * | from_bytes (const uint8_t *buffer, uint32_t total_sz) |
Allocates an Dot11 PDU from a buffer. More... | |
Static Public Attributes inherited from Tins::Dot11Control | |
static const PDU::PDUType | pdu_flag = PDU::DOT11_CONTROL |
This PDU's flag. | |
Static Public Attributes inherited from Tins::Dot11 | |
static const PDU::PDUType | pdu_flag = PDU::DOT11 |
This PDU's flag. | |
static const address_type | BROADCAST = "ff:ff:ff:ff:ff:ff" |
Broadcast hardware address. | |
static const endian_type | endianness = LE |
Static Public Attributes inherited from Tins::PDU | |
static const endian_type | endianness = BE |
Protected Attributes inherited from Tins::Dot11 | |
TINS_BEGIN_PACK struct Tins::Dot11::dot11_header | TINS_END_PACK |
Class that represents an abstraction of the 802.11 control frames that contain a target address.
|
protected |
|
protected |
Constructs a Dot11ControlTA object from a buffer and adds all identifiable PDUs found in the buffer as children of this one.
If the next PDU is not recognized, then a RawPDU is used.
If there is not enough size for the header in the buffer or the input data is malformed, a malformed_packet exception is thrown.
buffer | The buffer from which this PDU will be constructed. |
total_sz | The total size of the buffer. |
|
protectedvirtual |
Returns the 802.11 frame's header length.
Reimplemented from Tins::Dot11.
Reimplemented in Tins::Dot11BlockAck, and Tins::Dot11BlockAckRequest.
void Tins::Dot11ControlTA::target_addr | ( | const address_type & | addr | ) |
Setter for the target address field.
addr | The new target address. |