libwifi 0.0.3
An 802.11 Frame Parsing and Generation library in C
Data Structures
Here are the data structures with brief descriptions:
 Cieee80211_radiotap_headerStruct ieee82011_radiotap_header - base radiotap header
 Cieee80211_radiotap_iteratorStruct ieee80211_radiotap_iterator - tracks walk thru present radiotap args @this_arg_index: index of current arg, valid after each successful call to ieee80211_radiotap_iterator_next() @this_arg: pointer to current radiotap arg; it is valid after each call to ieee80211_radiotap_iterator_next() but also after ieee80211_radiotap_iterator_init() where it will point to the beginning of the actual data portion @this_arg_size: length of the current arg, for convenience @current_namespace: pointer to the current namespace definition (or internally NULL if the current namespace is unknown) @is_radiotap_ns: indicates whether the current namespace is the default radiotap namespace or not
 Cieee80211_radiotap_namespace
 Cieee80211_radiotap_vendor_namespaces
 Clibwifi_action
 Clibwifi_action_detail
 Clibwifi_action_fixed_parameters
 Clibwifi_assoc_req
 Clibwifi_assoc_req_fixed_parameters
 Clibwifi_assoc_resp
 Clibwifi_assoc_resp_fixed_parameters
 Clibwifi_atim
 Clibwifi_auth
 Clibwifi_auth_fixed_parameters
 Clibwifi_beacon
 Clibwifi_beacon_fixed_parameters
 Clibwifi_bss
 Clibwifi_cipher_suiteLibwifi Representation of a WPA or RSN cipher suite ┌────────────────────────┬────────────┐ │ OUI │ Suite Type │ ├────────────────────────┼────────────┤ │ 3 Bytes │ 1 Byte │ └────────────────────────┴────────────┘
 Clibwifi_ctrl_frame_header
 Clibwifi_cts
 Clibwifi_data
 Clibwifi_data_frame_header
 Clibwifi_data_qos_frame_header
 Clibwifi_deauth
 Clibwifi_deauth_fixed_parametersDeauthentication Layout ────────────────────────── ┌──────────────────────────┐ │ Header │ Bytes: 24 ├──────────────────────────┤ │ Fixed Parameters │ Bytes: 2 │┌────────────────────────┐│ ││ reason code ││ Bytes: 2 │└────────────────────────┘│ ├──────────────────────────┤ │ Tagged Parameters │ Bytes: Variable └──────────────────────────┘
 Clibwifi_disassoc
 Clibwifi_disassoc_fixed_parameters
 Clibwifi_frame
 Clibwifi_frame_ctrl
 Clibwifi_frame_ctrl_flags
 Clibwifi_frame_header
 Clibwifi_logical_link_ctrl
 Clibwifi_mgmt_frame_header
 Clibwifi_mgmt_ordered_frame_header
 Clibwifi_mgmt_unordered_frame_header
 Clibwifi_parsed_deauth
 Clibwifi_parsed_disassoc
 Clibwifi_probe_req
 Clibwifi_probe_resp
 Clibwifi_probe_resp_fixed_parameters
 Clibwifi_qos_control
 Clibwifi_radiotap_antennaThe radiotap antenna field consists of an antenna number and signal in dBm
 Clibwifi_radiotap_channelA channel field in radiotap consists of a 2-byte wide flags sub-field and a 2-byte wide frequency field
 Clibwifi_radiotap_info
 Clibwifi_radiotap_mcsThe radiotap MCS field is made up of 3 2-byte fields
 Clibwifi_radiotap_timestampThe radiotap timestamp field consists of a timestamp field, accuracy, unit and flags
 Clibwifi_reassoc_req
 Clibwifi_reassoc_req_fixed_parametersReassociation Request Layout ─────────────────────────────── ┌───────────────────────────────┐ │ Header │ Bytes: 24 ├───────────────────────────────┤ │ Fixed Parameters │ Bytes: 10 │┌─────────────────────────────┐│ ││ capabilities ││ Bytes: 2 │├─────────────────────────────┤│ ││ interval ││ Bytes: 2 │├─────────────────────────────┤│ ││ current AP address ││ Bytes: 6 │└─────────────────────────────┘│ ├───────────────────────────────┤ │ Tagged Parameters │ Bytes: Variable └───────────────────────────────┘
 Clibwifi_reassoc_resp
 Clibwifi_reassoc_resp_fixed_parameters
 Clibwifi_rsn_infoLibwifi Representation of a 802.11 RSN Information Element ┌───────────────────────────────────┐ │ Version │ ── 2 Bytes ├───────────────────────────────────┤ │ Group Cipher Suite │ ── 4 Bytes ├───────────────────────────────────┤ │ Pairwise Cipher Suite Count │ ── 2 Bytes ├───────────────────────────────────┤ │ Pairwise Cipher Suites │ ── 4 to 12 Bytes ├───────────────────────────────────┤ │ Auth Key Management Suite Count │ ── 2 Bytes ├───────────────────────────────────┤ │ Auth Key Management Suites │ ── 4 to 12 Bytes ├───────────────────────────────────┤ │ RSN Capabilities │ ── 2 Bytes └───────────────────────────────────┘
 Clibwifi_rts
 Clibwifi_seq_control
 Clibwifi_sta
 Clibwifi_tag_headerA tagged parameter always consists of a tag number and length
 Clibwifi_tag_iteratorA libwifi_tag_iterator is used to iterate through a list of tagged parameters in a wifi frame
 Clibwifi_tag_vendor_header
 Clibwifi_tagged_parameter
 Clibwifi_tagged_parameters
 Clibwifi_timing_advert
 Clibwifi_timing_advert_fields
 Clibwifi_timing_advert_fixed_params
 Clibwifi_wpa_auth_dataLibwifi Representation of the encapsulating 802.1X data in an EAPOL frame ┌─────────────────┐ │ Version │ ── 1 Byte ├─────────────────┤ │ Type │ ── 1 Byte ├─────────────────┤ │ Length │ ── 2 Bytes ├─────────────────┤ │ Descriptor │ ── 1 Byte ├─────────────────┤ │ Key Information │ ── See libwifi_wpa_key_info └─────────────────┘
 Clibwifi_wpa_infoLibwifi Representation of a Microsoft WPA Information Element ┌───────────────────────────────────┐ │ Version │ ── 2 Bytes ├───────────────────────────────────┤ │ Multicast Cipher Suite │ ── 4 Bytes ├───────────────────────────────────┤ │ Unicast Cipher Suite Count │ ── 2 Bytes ├───────────────────────────────────┤ │ Unicast Cipher Suites │ ── 4 to 12 Bytes ├───────────────────────────────────┤ │ Auth Key Management Suite Count │ ── 2 Bytes ├───────────────────────────────────┤ │ Auth Key Management Suites │ ── 4 to 12 Bytes └───────────────────────────────────┘
 Clibwifi_wpa_key_info
 Cradiotap_align_size
 Cradiotap_override