aboutsummaryrefslogtreecommitdiffstats
path: root/wpa_supplicant/events.c
diff options
context:
space:
mode:
authorLior David <qca_liord@qca.qualcomm.com>2016-02-08 10:30:04 (GMT)
committerJouni Malinen <j@w1.fi>2016-02-08 20:23:56 (GMT)
commitb907491281b06b4dee9e0d0326e23c67ce486eb5 (patch)
tree91d050cd4f5cbefda1005eac5581690497bf912f /wpa_supplicant/events.c
parent86b5c400a0fe2567e40119c31657076b87cd5f18 (diff)
downloadhostap-b907491281b06b4dee9e0d0326e23c67ce486eb5.zip
hostap-b907491281b06b4dee9e0d0326e23c67ce486eb5.tar.gz
hostap-b907491281b06b4dee9e0d0326e23c67ce486eb5.tar.bz2
wpa_supplicant: Basic support for PBSS/PCP
PBSS (Personal Basic Service Set) is a new BSS type for DMG networks. It is similar to infrastructure BSS, having an AP-like entity called PCP (PBSS Control Point), but it has few differences. PBSS support is mandatory for IEEE 802.11ad devices. Add a new "pbss" argument to network block. The argument is used in the following scenarios: 1. When network has mode=2 (AP), when pbss flag is set will start as a PCP instead of an AP. 2. When network has mode=0 (station), when pbss flag is set will connect to PCP instead of AP. The function wpa_scan_res_match() was modified to match BSS according to the pbss flag in the network block (wpa_ssid structure). When pbss flag is set it will match only PCPs, and when it is clear it will match only APs. Signed-off-by: Lior David <qca_liord@qca.qualcomm.com>
Diffstat (limited to 'wpa_supplicant/events.c')
-rw-r--r--wpa_supplicant/events.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index 2870e89..3264dc0 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -988,8 +988,14 @@ static struct wpa_ssid * wpa_scan_res_match(struct wpa_supplicant *wpa_s,
continue;
}
- if (!bss_is_ess(bss)) {
- wpa_dbg(wpa_s, MSG_DEBUG, " skip - not ESS network");
+ if (!bss_is_ess(bss) && !bss_is_pbss(bss)) {
+ wpa_dbg(wpa_s, MSG_DEBUG, " skip - neither ESS nor PBSS network");
+ continue;
+ }
+
+ if (ssid->pbss != bss_is_pbss(bss)) {
+ wpa_dbg(wpa_s, MSG_DEBUG, " skip - PBSS mismatch (ssid %d bss %d)",
+ ssid->pbss, bss_is_pbss(bss));
continue;
}