diff options
| author | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2015-12-22 22:13:33 +0530 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2015-12-22 22:13:33 +0530 |
| commit | 20c1104d002d61af3a12ee58e346a9f28937d620 (patch) | |
| tree | fb4892d7bf55f596e611b95cbcd07443b7527c04 /src | |
| parent | 0760a81d4add6e2f3653e0a3eb24dba6c5dac4f5 (diff) | |
| parent | d56f4796a7ef6215b2929c9745d63e944e2064d1 (diff) | |
| download | android_external_wpa_supplicant_8-20c1104d002d61af3a12ee58e346a9f28937d620.tar.gz android_external_wpa_supplicant_8-20c1104d002d61af3a12ee58e346a9f28937d620.tar.bz2 android_external_wpa_supplicant_8-20c1104d002d61af3a12ee58e346a9f28937d620.zip | |
Merge remote-tracking branch 'quic/wlan-service.lnx.1.0-rel.1.0' into dev
* quic/wlan-service.lnx.1.0-rel.1.0:
FST: Improve parsing of Multiband IEs
FST: Make FST peer connection check more permissive in hostapd
FST: Fix STA MB IEs creation
hostapd: Process MAC ACLs on a station association event (SME in driver)
RSN: Stop connection attempt on apparent PMK mismatch
Throttle control interface event message bursts
Add wpa_supplicant EVENT_TEST control interface command
hostapd: Global control interface notifications
Add debug prints for wpa_supplicant ctrl_iface socket send operations
Update AP WPA/RSN IE on all associations if driver can select BSS
Update AP WPA/RSN IE on all associations if driver can select BSS
Add QCA vendor command support to set band to driver
nl80211: Use beacon TSF if it is newer than Probe Response TSF
Change-Id: I16af74774396a8dd0c73036c1c2b1d7da2b42fb5
Diffstat (limited to 'src')
| -rw-r--r-- | src/common/qca-vendor.h | 51 | ||||
| -rw-r--r-- | src/rsn_supp/wpa.c | 11 |
2 files changed, 62 insertions, 0 deletions
diff --git a/src/common/qca-vendor.h b/src/common/qca-vendor.h index 94063861..2a6e2429 100644 --- a/src/common/qca-vendor.h +++ b/src/common/qca-vendor.h @@ -152,6 +152,9 @@ enum qca_nl80211_vendor_subcmds { QCA_NL80211_VENDOR_SUBCMD_DCC_UPDATE_NDL = 99, QCA_NL80211_VENDOR_SUBCMD_DCC_STATS_EVENT = 100, QCA_NL80211_VENDOR_SUBCMD_LINK_PROPERTIES = 101, + QCA_NL80211_VENDOR_SUBCMD_GW_PARAM_CONFIG = 102, + QCA_NL80211_VENDOR_SUBCMD_GET_PREFERRED_FREQ_LIST = 103, + QCA_NL80211_VENDOR_SUBCMD_SET_PROBABLE_OPER_CHANNEL = 104, QCA_NL80211_VENDOR_SUBCMD_SETBAND = 105, }; @@ -173,6 +176,13 @@ enum qca_wlan_vendor_attr { /* used by QCA_NL80211_VENDOR_SUBCMD_GET_FEATURES */ QCA_WLAN_VENDOR_ATTR_FEATURE_FLAGS = 7, QCA_WLAN_VENDOR_ATTR_TEST = 8, + /* used by QCA_NL80211_VENDOR_SUBCMD_GET_FEATURES */ + /* Unsigned 32-bit value. */ + QCA_WLAN_VENDOR_ATTR_CONCURRENCY_CAPA = 9, + /* Unsigned 32-bit value */ + QCA_WLAN_VENDOR_ATTR_MAX_CONCURRENT_CHANNELS_2_4_BAND = 10, + /* Unsigned 32-bit value */ + QCA_WLAN_VENDOR_ATTR_MAX_CONCURRENT_CHANNELS_5_0_BAND = 11, /* Unsigned 32-bit value from enum qca_set_band. */ QCA_WLAN_VENDOR_ATTR_SETBAND_VALUE = 12, /* keep last */ @@ -266,6 +276,47 @@ enum qca_wlan_vendor_attr_data_offload_ind { QCA_WLAN_VENDOR_ATTR_DATA_OFFLOAD_IND_AFTER_LAST - 1 }; +enum qca_vendor_attr_get_preferred_freq_list { + QCA_WLAN_VENDOR_ATTR_GET_PREFERRED_FREQ_LIST_INVALID, + /* A 32-unsigned value; the interface type/mode for which the preferred + * frequency list is requested (see enum qca_iface_type for possible + * values); used in GET_PREFERRED_FREQ_LIST command from user-space to + * kernel and in the kernel response back to user-space. + */ + QCA_WLAN_VENDOR_ATTR_GET_PREFERRED_FREQ_LIST_IFACE_TYPE, + /* An array of 32-unsigned values; values are frequency (MHz); sent + * from kernel space to user space. + */ + QCA_WLAN_VENDOR_ATTR_GET_PREFERRED_FREQ_LIST, + /* keep last */ + QCA_WLAN_VENDOR_ATTR_GET_PREFERRED_FREQ_LIST_AFTER_LAST, + QCA_WLAN_VENDOR_ATTR_GET_PREFERRED_FREQ_LIST_MAX = + QCA_WLAN_VENDOR_ATTR_GET_PREFERRED_FREQ_LIST_AFTER_LAST - 1 +}; + +enum qca_vendor_attr_probable_oper_channel { + QCA_WLAN_VENDOR_ATTR_PROBABLE_OPER_CHANNEL_INVALID, + /* 32-bit unsigned value; indicates the connection/iface type likely to + * come on this channel (see enum qca_iface_type). + */ + QCA_WLAN_VENDOR_ATTR_PROBABLE_OPER_CHANNEL_IFACE_TYPE, + /* 32-bit unsigned value; the frequency (MHz) of the probable channel */ + QCA_WLAN_VENDOR_ATTR_PROBABLE_OPER_CHANNEL_FREQ, + /* keep last */ + QCA_WLAN_VENDOR_ATTR_PROBABLE_OPER_CHANNEL_AFTER_LAST, + QCA_WLAN_VENDOR_ATTR_PROBABLE_OPER_CHANNEL_MAX = + QCA_WLAN_VENDOR_ATTR_PROBABLE_OPER_CHANNEL_AFTER_LAST - 1 +}; + +enum qca_iface_type { + QCA_IFACE_TYPE_STA, + QCA_IFACE_TYPE_AP, + QCA_IFACE_TYPE_P2P_CLIENT, + QCA_IFACE_TYPE_P2P_GO, + QCA_IFACE_TYPE_IBSS, + QCA_IFACE_TYPE_TDLS, +}; + enum qca_set_band { QCA_SETBAND_AUTO, QCA_SETBAND_5G, diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c index 38cbce63..2d4d8b80 100644 --- a/src/rsn_supp/wpa.c +++ b/src/rsn_supp/wpa.c @@ -249,6 +249,17 @@ static int wpa_supplicant_get_pmk(struct wpa_sm *sm, "RSN: the new PMK matches with the " "PMKID"); abort_cached = 0; + } else if (sa && !sm->cur_pmksa && pmkid) { + /* + * It looks like the authentication server + * derived mismatching MSK. This should not + * really happen, but bugs happen.. There is not + * much we can do here without knowing what + * exactly caused the server to misbehave. + */ + wpa_dbg(sm->ctx->msg_ctx, MSG_INFO, + "RSN: PMKID mismatch - authentication server may have derived different MSK?!"); + return -1; } if (!sm->cur_pmksa) |
