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:

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