aboutsummaryrefslogtreecommitdiffstats
path: root/src/drivers/driver.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/driver.h')
-rw-r--r--src/drivers/driver.h28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/drivers/driver.h b/src/drivers/driver.h
index 7afbda1..6446593 100644
--- a/src/drivers/driver.h
+++ b/src/drivers/driver.h
@@ -898,6 +898,16 @@ struct hostapd_freq_params {
* enabled, secondary channel above primary */
};
+struct hostapd_channel_switch {
+ int freq;
+ int tx_block; /* immediately block the tx on the
+ * operational channel
+ * (prior channel switch) */
+ int post_switch_block_tx; /* block tx on the target ch (after
+ * channel switch) */
+ int ch_switch_count;
+};
+
enum wpa_driver_if_type {
/**
* WPA_IF_STATION - Station mode interface
@@ -2587,6 +2597,15 @@ struct wpa_driver_ops {
* Returns: 0 on success, -1 on failure
*/
int (*driver_cmd)(void *priv, char *cmd, char *buf, size_t buf_len);
+
+ /**
+ * hapd_channel_switch - Perform an AP channel switch
+ * @priv: Private driver interface data
+ * @params: Channels switch parameters
+ * Returns: 0 on success, -1 on failure
+ */
+ int (*hapd_channel_switch)(void *priv,
+ struct hostapd_channel_switch *params);
};
@@ -3041,7 +3060,12 @@ enum wpa_event_type {
*
* Described in wpa_event_data.ch_switch
* */
- EVENT_CH_SWITCH
+ EVENT_CH_SWITCH,
+
+ /**
+ * EVENT_REQ_CH_SW - a request to perform a channel switch for GO/AP
+ */
+ EVENT_REQ_CH_SW
};
@@ -3704,6 +3728,8 @@ static inline void drv_event_eapol_rx(void *ctx, const u8 *src, const u8 *data,
/* driver_common.c */
void wpa_scan_results_free(struct wpa_scan_results *res);
+int ieee802_11_start_channel_switch(struct hostapd_data *hapd,
+ int freq, u8 radar_detected);
/* Convert wpa_event_type to a string for logging */
const char * event_to_string(enum wpa_event_type event);