Make channel switch started event available over control interface
This makes it easier to upper layer components to manage operating channels in cases where the same radio is shared for both station and AP mode virtual interfaces. Signed-off-by: Omer Dagan <omer.dagan@tandemg.com>
This commit is contained in:
parent
9c95124418
commit
95f556f3c7
9 changed files with 67 additions and 14 deletions
|
@ -772,7 +772,8 @@ void hostapd_event_sta_opmode_changed(struct hostapd_data *hapd, const u8 *addr,
|
|||
|
||||
|
||||
void hostapd_event_ch_switch(struct hostapd_data *hapd, int freq, int ht,
|
||||
int offset, int width, int cf1, int cf2)
|
||||
int offset, int width, int cf1, int cf2,
|
||||
int finished)
|
||||
{
|
||||
/* TODO: If OCV is enabled deauth STAs that don't perform a SA Query */
|
||||
|
||||
|
@ -783,7 +784,8 @@ void hostapd_event_ch_switch(struct hostapd_data *hapd, int freq, int ht,
|
|||
|
||||
hostapd_logger(hapd, NULL, HOSTAPD_MODULE_IEEE80211,
|
||||
HOSTAPD_LEVEL_INFO,
|
||||
"driver had channel switch: freq=%d, ht=%d, vht_ch=0x%x, offset=%d, width=%d (%s), cf1=%d, cf2=%d",
|
||||
"driver %s channel switch: freq=%d, ht=%d, vht_ch=0x%x, offset=%d, width=%d (%s), cf1=%d, cf2=%d",
|
||||
finished ? "had" : "starting",
|
||||
freq, ht, hapd->iconf->ch_switch_vht_config, offset,
|
||||
width, channel_width_to_string(width), cf1, cf2);
|
||||
|
||||
|
@ -851,6 +853,15 @@ void hostapd_event_ch_switch(struct hostapd_data *hapd, int freq, int ht,
|
|||
is_dfs = ieee80211_is_dfs(freq, hapd->iface->hw_features,
|
||||
hapd->iface->num_hw_features);
|
||||
|
||||
wpa_msg(hapd->msg_ctx, MSG_INFO,
|
||||
"%sfreq=%d ht_enabled=%d ch_offset=%d ch_width=%s cf1=%d cf2=%d dfs=%d",
|
||||
finished ? WPA_EVENT_CHANNEL_SWITCH :
|
||||
WPA_EVENT_CHANNEL_SWITCH_STARTED,
|
||||
freq, ht, offset, channel_width_to_string(width),
|
||||
cf1, cf2, is_dfs);
|
||||
if (!finished)
|
||||
return;
|
||||
|
||||
if (hapd->csa_in_progress &&
|
||||
freq == hapd->cs_freq_params.freq) {
|
||||
hostapd_cleanup_cs_params(hapd);
|
||||
|
@ -1689,6 +1700,7 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
|
|||
case EVENT_AUTH:
|
||||
hostapd_notif_auth(hapd, &data->auth);
|
||||
break;
|
||||
case EVENT_CH_SWITCH_STARTED:
|
||||
case EVENT_CH_SWITCH:
|
||||
if (!data)
|
||||
break;
|
||||
|
@ -1697,7 +1709,8 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
|
|||
data->ch_switch.ch_offset,
|
||||
data->ch_switch.ch_width,
|
||||
data->ch_switch.cf1,
|
||||
data->ch_switch.cf2);
|
||||
data->ch_switch.cf2,
|
||||
event == EVENT_CH_SWITCH);
|
||||
break;
|
||||
case EVENT_CONNECT_FAILED_REASON:
|
||||
if (!data)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue