Wireless Network Information Tracker¶
The High MAC Framework tracks information about wireless networks that it learns from received Beacon and Probe Response frames. This operation is independent of the framework’s network scanner. The information tracked is a superset of bss_config_t
defined in High MAC Framework BSS Configuration.
The information tracked for each network is defined in the network_info_t
struct as the following:
Parameter | Description |
---|---|
bss_config_t bss_config |
As defined in High MAC Framework BSS Configuration. |
u32 flags |
NETWORK_FLAGS_KEEP : prevents the High MAC Framework from removing a network_info_t regardless of how stale it might be. |
u32 capabilities |
BSS_CAPABILITIES_ESS : network is part of an Extended Service Set. |
BSS_CAPABILITIES_IBSS : network is IBSS (ad hoc). |
|
BSS_CAPABILITIES_PRIVACY : network is private and requires authentication. |
|
u64 latest_beacon_rx_time |
local MAC time of last overheard beacon from this network. |
s8 latest_beacon_rx_power |
Receive power (dBm) of last overheard beacon. |
The network info framework provides the following utility functions:
Print all network information to UART¶
The framework provides a function that will print all known network information to the CPU High UART:
void print_network_info();
Create network information¶
network_info_t* wlan_mac_high_create_network_info(u8* bssid, char* ssid, u8 chan);
The return value and function arguments are defined as follows:
Parameter | Description |
---|---|
Return value (network_info_t* ) |
NULL if unable to create network information, or a pointer to a network_info_t containing the provided arguments. |
u8* bssid |
Pointer to a 6-byte array containing the BSSID of the created network. |
char* ssid |
Pointer to string of network’s SSID. |
u8 chan |
Primary channel of network. |
Find network matching a BSSID¶
network_info_entry_t* wlan_mac_high_find_network_info_BSSID(u8* bssid);
The return value and function arguments are defined as follows:
Parameter | Description |
---|---|
Return value (network_info_entry_t* ) |
NULL if no such BSSID has been seen, or a pointer to a network_info_entry_t (whose data field is a network_info_t pointer) if a network matching the provided BSSID is found |
u8* bssid |
Pointer to a 6-byte array containing the BSSID being searched for. |
Find network matching an SSID¶
dl_list* wlan_mac_high_find_network_info_SSID(char* ssid);
The return value and function arguments are defined as follows:
Parameter | Description |
---|---|
Return value (dl_list* ) |
NULL if no such SSID has been seen, or a pointer to a dl_list of potentially multiple networks matching the provided SSID string. |
char* ssid |
Pointer to string of network’s SSID. |
Retrieve full network information list¶
dl_list* wlan_mac_high_get_network_info_list();
The return value and function arguments are defined as follows:
Parameter | Description |
---|---|
Return value (dl_list* ) |
List containing all observed network information structs |