Update to Version 0.8.24 from BRCM
- Add 'conc_priority' command
- Fix handling a single channel concurrency case: If conc_priority
is not set, advertise the frequency conflict to the framework and
disable the new connection attempted
- When P2P Interface gets removed due to single channel frequency
conflict, show GROUP_REMOVE reason=FREQ_CONFLICT
- Fix sched scan processing
Change-Id: Ie6fe105cebd379a0a9c49ace62d2e48e71571107
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c
index 3aba246..5e7edc8 100644
--- a/wpa_supplicant/p2p_supplicant.c
+++ b/wpa_supplicant/p2p_supplicant.c
@@ -257,6 +257,11 @@
case P2P_GROUP_REMOVAL_UNAVAILABLE:
reason = " reason=UNAVAILABLE";
break;
+#ifdef ANDROID_P2P
+ case P2P_GROUP_REMOVAL_FREQ_CONFLICT:
+ reason = " reason=FREQ_CONFLICT";
+ break;
+#endif
default:
reason = "";
break;
@@ -805,9 +810,6 @@
#define C(n) if (s->n) d->n = os_strdup(s->n)
C(device_name);
-#ifdef ANDROID_P2P
- C(prioritize);
-#endif
C(manufacturer);
C(model_name);
C(model_number);
@@ -4458,10 +4460,13 @@
/* If GO cannot be moved or if the conflicting interface is a
* P2P Client, remove the interface depending up on the connection
* priority */
- if(wpas_is_interface_prioritized(wpa_s)) {
- /* Newly requested connection has priority over existing
+ if(!wpas_is_p2p_prioritized(wpa_s)) {
+ /* STA connection has priority over existing
* P2P connection. So remove the interface */
- wpas_p2p_disconnect(iface);
+ wpa_printf(MSG_DEBUG, "P2P: Removing P2P connection due to Single channel"
+ "concurrent mode frequency conflict");
+ iface->removal_reason = P2P_GROUP_REMOVAL_FREQ_CONFLICT;
+ wpas_p2p_group_delete(iface);
} else {
/* Existing connection has the priority. Disable the newly
* selected network and let the application know about it.