P2P: Add a testing option to force P2P GO CSA

Add a testing option to force a P2P GO CSA on successful
invitation to join an active P2P GO.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
This commit is contained in:
Ilan Peer 2015-11-22 15:57:51 +02:00 committed by Jouni Malinen
parent 6cbbae2cf8
commit ed7820b484
3 changed files with 19 additions and 1 deletions

View file

@ -467,6 +467,8 @@ static int wpa_supplicant_ctrl_iface_set(struct wpa_supplicant *wpa_s,
wpa_s->extra_roc_dur = atoi(value); wpa_s->extra_roc_dur = atoi(value);
} else if (os_strcasecmp(cmd, "test_failure") == 0) { } else if (os_strcasecmp(cmd, "test_failure") == 0) {
wpa_s->test_failure = atoi(value); wpa_s->test_failure = atoi(value);
} else if (os_strcasecmp(cmd, "p2p_go_csa_on_inv") == 0) {
wpa_s->p2p_go_csa_on_inv = !!atoi(value);
#endif /* CONFIG_TESTING_OPTIONS */ #endif /* CONFIG_TESTING_OPTIONS */
#ifndef CONFIG_NO_CONFIG_BLOBS #ifndef CONFIG_NO_CONFIG_BLOBS
} else if (os_strcmp(cmd, "blob") == 0) { } else if (os_strcmp(cmd, "blob") == 0) {
@ -6888,6 +6890,7 @@ static void wpa_supplicant_ctrl_iface_flush(struct wpa_supplicant *wpa_s)
#ifdef CONFIG_TESTING_OPTIONS #ifdef CONFIG_TESTING_OPTIONS
wpa_s->extra_roc_dur = 0; wpa_s->extra_roc_dur = 0;
wpa_s->test_failure = WPAS_TEST_FAILURE_NONE; wpa_s->test_failure = WPAS_TEST_FAILURE_NONE;
wpa_s->p2p_go_csa_on_inv = 0;
#endif /* CONFIG_TESTING_OPTIONS */ #endif /* CONFIG_TESTING_OPTIONS */
wpa_s->disconnected = 0; wpa_s->disconnected = 0;

View file

@ -3113,8 +3113,22 @@ static void wpas_invitation_result(void *ctx, int status, const u8 *bssid,
*/ */
if (status == P2P_SC_SUCCESS && if (status == P2P_SC_SUCCESS &&
group_if && group_if->current_ssid && group_if && group_if->current_ssid &&
group_if->current_ssid->mode == WPAS_MODE_P2P_GO) group_if->current_ssid->mode == WPAS_MODE_P2P_GO) {
os_get_reltime(&wpa_s->global->p2p_go_wait_client); os_get_reltime(&wpa_s->global->p2p_go_wait_client);
#ifdef CONFIG_TESTING_OPTIONS
if (group_if->p2p_go_csa_on_inv) {
wpa_printf(MSG_DEBUG,
"Testing: force P2P GO CSA after invitation");
eloop_cancel_timeout(
wpas_p2p_reconsider_moving_go,
wpa_s, NULL);
eloop_register_timeout(
0, 50000,
wpas_p2p_reconsider_moving_go,
wpa_s, NULL);
}
#endif /* CONFIG_TESTING_OPTIONS */
}
return; return;
} }

View file

@ -982,6 +982,7 @@ struct wpa_supplicant {
struct l2_packet_data *l2_test; struct l2_packet_data *l2_test;
unsigned int extra_roc_dur; unsigned int extra_roc_dur;
enum wpa_supplicant_test_failure test_failure; enum wpa_supplicant_test_failure test_failure;
unsigned int p2p_go_csa_on_inv:1;
#endif /* CONFIG_TESTING_OPTIONS */ #endif /* CONFIG_TESTING_OPTIONS */
struct wmm_ac_assoc_data *wmm_ac_assoc_info; struct wmm_ac_assoc_data *wmm_ac_assoc_info;