libtins 4.5
|
IEEE 802.11 RTS frame. More...
#include <dot11_control.h>
Public Member Functions | |
Dot11RTS (const address_type &dst_addr=address_type(), const address_type &target_addr=address_type()) | |
Constructor for creating a 802.11 RTS frame PDU. | |
Dot11RTS (const uint8_t *buffer, uint32_t total_sz) | |
Constructs a Dot11RTS object from a buffer and adds all identifiable PDUs found in the buffer as children of this one. | |
Dot11RTS * | clone () const |
Clones this PDU. | |
PDUType | pdu_type () const |
Getter for the PDU's type. | |
bool | matches_flag (PDUType flag) const |
Check whether this PDU matches the specified flag. | |
![]() | |
address_type | target_addr () const |
Getter for the target address field. | |
void | target_addr (const address_type &addr) |
Setter for the target address field. | |
![]() | |
Dot11Control (const address_type &dst_addr=address_type()) | |
Constructor for creating a 802.11 control frame PDU. | |
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. | |
![]() | |
Dot11 (const address_type &dst_hw_addr=address_type()) | |
Constructs an 802.11 PDU. | |
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. | |
small_uint< 2 > | protocol () const |
Getter for the protocol version field. | |
small_uint< 2 > | type () const |
Getter for the Type field. | |
small_uint< 4 > | subtype () const |
Getter for the Subtype field. | |
small_uint< 1 > | to_ds () const |
Getter for the To-DS field. | |
small_uint< 1 > | from_ds () const |
Getter for the From-DS field. | |
small_uint< 1 > | more_frag () const |
Getter for the More-Frag field. | |
small_uint< 1 > | retry () const |
Getter for the Retry field. | |
small_uint< 1 > | power_mgmt () const |
Getter for the Power-Management field. | |
small_uint< 1 > | more_data () const |
Getter for the More Data field. | |
small_uint< 1 > | wep () const |
Getter for the WEP field. | |
small_uint< 1 > | order () const |
Getter for the Order field. | |
uint16_t | duration_id () const |
Getter for the Duration-ID field. | |
address_type | addr1 () const |
Getter for the first address. | |
void | protocol (small_uint< 2 > new_proto) |
Setter for the protocol version field. | |
void | type (small_uint< 2 > new_type) |
Setter for the type field. | |
void | subtype (small_uint< 4 > new_subtype) |
Setter for the subtype field. | |
void | to_ds (small_uint< 1 > new_value) |
Setter for the To-DS field. | |
void | from_ds (small_uint< 1 > new_value) |
Setter for the From-DS field. | |
void | more_frag (small_uint< 1 > new_value) |
Setter for the More-Frag field. | |
void | retry (small_uint< 1 > new_value) |
Setter for the Retry field. | |
void | power_mgmt (small_uint< 1 > new_value) |
Setter for the Power-Management field. | |
void | more_data (small_uint< 1 > new_value) |
Setter for the More Data field. | |
void | wep (small_uint< 1 > new_value) |
Setter for the WEP field. | |
void | order (small_uint< 1 > new_value) |
Setter for the Order field. | |
void | duration_id (uint16_t new_duration_id) |
Setter for the Duration-ID field. | |
void | addr1 (const address_type &new_addr1) |
Setter for the first address. | |
void | send (PacketSender &sender, const NetworkInterface &iface) |
void | add_option (const option &opt) |
Adds a new option to this Dot11 PDU. | |
void | add_option (option &&opt) |
Adds a new option to this Dot11 PDU. | |
bool | remove_option (OptionTypes type) |
Removes a Dot11 option. | |
const option * | search_option (OptionTypes type) const |
Looks up a tagged option in the option list. | |
const options_type & | options () const |
Getter for the option list. | |
![]() | |
PDU () | |
Default constructor. | |
PDU (PDU &&rhs) TINS_NOEXCEPT | |
Move constructor. | |
PDU & | operator= (PDU &&rhs) TINS_NOEXCEPT |
Move assignment operator. | |
virtual | ~PDU () |
PDU destructor. | |
virtual uint32_t | trailer_size () const |
Trailer's size. | |
uint32_t | size () const |
The whole chain of PDU's size, including this one. | |
virtual uint32_t | advertised_size () const |
The whole chain of PDU's advertised size, including this one. | |
PDU * | inner_pdu () const |
Getter for the inner PDU. | |
PDU * | parent_pdu () const |
PDU * | release_inner_pdu () |
Releases the inner PDU. | |
void | inner_pdu (PDU *next_pdu) |
Sets the child PDU. | |
void | inner_pdu (const PDU &next_pdu) |
Sets the child PDU. | |
serialization_type | serialize () |
Serializes the whole chain of PDU's, including this one. | |
template<typename T > | |
T * | find_pdu (PDUType type=T::pdu_flag) |
Finds and returns the first PDU that matches the given flag. | |
template<typename T > | |
const T * | find_pdu (PDUType type=T::pdu_flag) const |
Finds and returns the first PDU that matches the given flag. | |
template<typename T > | |
T & | rfind_pdu (PDUType type=T::pdu_flag) |
Finds and returns the first PDU that matches the given flag. | |
template<typename T > | |
const T & | rfind_pdu (PDUType type=T::pdu_flag) const |
Finds and returns the first PDU that matches the given flag. | |
virtual PDU * | recv_response (PacketSender &sender, const NetworkInterface &iface) |
Receives a matching response for this packet. | |
virtual bool | matches_response (const uint8_t *ptr, uint32_t total_sz) const |
Check whether ptr points to a valid response for this PDU. | |
Static Public Attributes | |
static const PDU::PDUType | pdu_flag = PDU::DOT11_RTS |
This PDU's flag. | |
![]() | |
static const PDU::PDUType | pdu_flag = PDU::DOT11_CONTROL_TA |
This PDU's flag. | |
![]() | |
static const PDU::PDUType | pdu_flag = PDU::DOT11_CONTROL |
This PDU's flag. | |
![]() | |
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 const endian_type | endianness = BE |
Additional Inherited Members | |
![]() | |
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 , HT_CAPABILITY , QOS_CAPABILITY , RSN = 48 , EXT_SUPPORTED_RATES = 50 , AP_CHANNEL_REPORT , NEIGHBOR_REPORT , RCPI , MOBILITY_DOMAIN_MDE , FAST_BSS_TRANSITION_FTE , TIMEOUT_INTERVAL , RIC_DATA_RDE , DSE_REG_LOC , SUPPORTED_OP_CLASSES , EXT_CH_SWITCH_ANNOUNCEMENT , HT_OPERATION , SEC_CH_OFFSET , BSS_AVG_ACCESS_DELAY , ANTENNA , RSNI , MEASUREMENT_PILOT_TRANSMISSION , BSS_AVAIL_ADMISSION_CAPACITY , BSS_AC_ACCESS_DELAY , TIME_ADVERTISEMENT , RM_ENABLED_CAP , MULTIPLE_BSSID , BSS_2040_COEX , BSS_2040_INTOLERANT_CH_REPORT , OVERLAPPING_BSS_SCAN_PARAM , RIC_DESCRIPTOR , MGMT_MIC , EVENT_REQ = 78 , EVENT_REPORT , DIAG_REQ , DIAG_REPORT , LOCATION_PARAMS , NONTRANSMITTED_BSSID_CAP , SSID_LIST , MULTIPLE_BSSID_INDEX , FMS_DESCRIPTOR , FMS_REQ , FMS_RESP , QOS_TRAFFIC_CAP , BSS_MAX_IDLE_PERIOD , TFS_REQ , TFS_RESP , WNM_SLEEP_MODE , TIM_BROADCAST_REQ , TIM_BROADCAST_RESP , COLLOCATED_INTERFERENCE_REPORT , CH_USAGE , TIME_ZONE , DMS_REQ , DMS_RESP , LINK_ID , WAKEUP_SCHEDULE , CH_SWITCH_TIMING , PTI_CONTROL , TPU_BUFFER_STATUS , INTERWORKING , ADVERTISEMENT_PROTOCOL , EXPEDITED_BANDWIDTH_REQ , QOS_MAP , ROAMING_CONSORTIUM , EMERG_ALERT_ID , MESH_CONFIG , MESH_ID , MESH_LINK_METRIC_REPORT , CONGESTION_NOTIFICATION , MESH_PEERING_MGMT , MESH_CH_SWITCH_PARAMS , MESH_AWAKE_WINDOW , BEACON_TIMING , MCCAOP_SETUP_REQ , MCCAOP_SETUP_REPLY , MCCAOP_ADVERTISEMENT , MCCAOP_TEARDOWN , GANN , RANN , EXT_CAP , PREQ = 130 , PREP , PERR , PXU = 137 , PXUC , AUTH_MESH_PEER_EX , MIC , DEST_URI , UAPSD_COEX , DMG_WAKEUP_SCHEDULE , EXT_SCHEDULE , STA_AVAIL , DMG_TSPEC , NEXT_DMG_ATI , DMG_CAP , DMG_OP = 151 , DMG_BSS_PARAM_CHG , DMG_BEAM_REFINEMENT , CH_MEASUREMENT_FEEDBACK , AWAKE_WINDOW = 157 , MULTIBAND , ADDBA_ESXT , NEXTPCP_LIST , PCP_HANDOVER , DMG_LINK_MARGIN , SWITCHING_STREAM , SESSION_TRANSITION , DYNAMIC_TONE_PAIRING_REPORT , CLUSTER_REPORT , RELAY_CAP , RELAY_TRANSFER_PARAM_SET , BEAMLINK_MAINTENANCE , MULTIPLE_MAC_SUBLAYERS , UPID , DMG_LINK_ADAPTATION_ACK , MCCAOP_ADV_OVERVIEW = 174 , QUIET_PERIOD_REQ , QUIET_PERIOD_RESP = 177 , QMF_POLICY = 181 , ECAPC_POLICY = 182 , CLUSTER_TIME_OFFSET , INTRA_ACCESS_CAT_PRIORITY , SCS_DESCRIPTOR , QLOAD_REPORT , HCCA_TXOP_UPDATE_COUNT , HIGHER_LAYER_STREAM_ID , GCR_GROUP_ADDR , ANTENNA_SECTOR_ID_PATTERN , VHT_CAP , VHT_OP , EXT_BSS_LOAD , WIDE_BANDWIDTH_CH_SWITCH , TRANSMIT_POWER_ENVELOPE , CH_SWITCH_WRAPPER , AID , QUIET_CHANNEL , OP_MODE_NOTIFY , UPSIM , REDUCED_NEIGHBOR_REPORT , TVHT_OP , DEV_LOC = 204 , WHITE_SPACE_MAP , FINE_TUNING_MEASUREMENT_PARAMS , 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 |
![]() | |
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 , DOT1AD , DOT1Q , PPPOE , STP , PPI , IPSEC_AH , IPSEC_ESP , PKTAP , MPLS , DOT11_CONTROL_TA , VXLAN , UNKNOWN = 999 , USER_DEFINED_PDU = 1000 } |
Enum which identifies each type of PDU. More... | |
typedef byte_array | serialization_type |
![]() | |
static Dot11 * | from_bytes (const uint8_t *buffer, uint32_t total_sz) |
Allocates an Dot11 PDU from a buffer. | |
![]() | |
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. | |
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. | |
uint32_t | header_size () const |
Returns the 802.11 frame's header length. | |
uint32_t | controlta_size () const |
Getter for the control ta additional fields size. | |
void | write_ext_header (Memory::OutputMemoryStream &stream) |
![]() | |
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) |
![]() | |
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). | |
virtual void | prepare_for_serialize () |
Prepares this PDU for serialization. | |
void | serialize (uint8_t *buffer, uint32_t total_sz) |
Serializes this PDU and propagates this action to child PDUs. | |
![]() | |
TINS_BEGIN_PACK struct Tins::Dot11::dot11_header | TINS_END_PACK |
IEEE 802.11 RTS frame.
Tins::Dot11RTS::Dot11RTS | ( | const address_type & | dst_addr = address_type(), |
const address_type & | target_addr = address_type() ) |
Tins::Dot11RTS::Dot11RTS | ( | const uint8_t * | buffer, |
uint32_t | total_sz ) |
Constructs a Dot11RTS 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. |
|
inlinevirtual |
|
inlinevirtual |
Check whether this PDU matches the specified flag.
flag | The flag to match |
Reimplemented from Tins::Dot11ControlTA.
|
inlinevirtual |