driver: Make setting up AP optional when creating AP interface
[mech_eap.git] / src / drivers / driver.h
index 830ff80..d3f7057 100644 (file)
@@ -1306,6 +1306,9 @@ struct wpa_driver_capa {
        unsigned int max_conc_chan_2_4;
        /* Maximum number of concurrent channels on 5 GHz */
        unsigned int max_conc_chan_5_0;
+
+       /* Maximum number of supported CSA counters */
+       u16 max_csa_counters;
 };
 
 
@@ -1556,8 +1559,8 @@ struct csa_settings {
        struct beacon_data beacon_csa;
        struct beacon_data beacon_after;
 
-       u16 counter_offset_beacon;
-       u16 counter_offset_presp;
+       u16 counter_offset_beacon[2];
+       u16 counter_offset_presp[2];
 };
 
 /* TDLS peer capabilities for send_tdls_mgmt() */
@@ -1962,10 +1965,13 @@ struct wpa_driver_ops {
         * @noack: Do not wait for this frame to be acked (disable retries)
         * @freq: Frequency (in MHz) to send the frame on, or 0 to let the
         * driver decide
+        * @csa_offs: Array of CSA offsets or %NULL
+        * @csa_offs_len: Number of elements in csa_offs
         * Returns: 0 on success, -1 on failure
         */
        int (*send_mlme)(void *priv, const u8 *data, size_t data_len,
-                        int noack, unsigned int freq);
+                        int noack, unsigned int freq, const u16 *csa_offs,
+                        size_t csa_offs_len);
 
        /**
         * update_ft_ies - Update FT (IEEE 802.11r) IEs
@@ -2401,12 +2407,13 @@ struct wpa_driver_ops {
         *      change interface address)
         * @bridge: Bridge interface to use or %NULL if no bridge configured
         * @use_existing: Whether to allow existing interface to be used
+        * @setup_ap: Whether to setup AP for %WPA_IF_AP_BSS interfaces
         * Returns: 0 on success, -1 on failure
         */
        int (*if_add)(void *priv, enum wpa_driver_if_type type,
                      const char *ifname, const u8 *addr, void *bss_ctx,
                      void **drv_priv, char *force_ifname, u8 *if_addr,
-                     const char *bridge, int use_existing);
+                     const char *bridge, int use_existing, int setup_ap);
 
        /**
         * if_remove - Remove a virtual interface
@@ -4100,6 +4107,12 @@ union wpa_event_data {
                 * ptk_kek_len - The length of ptk_kek
                 */
                size_t ptk_kek_len;
+
+               /**
+                * subnet_status - The subnet status:
+                * 0 = unknown, 1 = unchanged, 2 = changed
+                */
+               u8 subnet_status;
        } assoc_info;
 
        /**