Allow SCS supported to be disabled for testing purposes

"SET disable_scs_support 1" can be used to disable indication of SCS
support in the Extended Capabilities element for testing purposes.

Signed-off-by: Vinita S. Maloo <vmaloo@codeaurora.org>
This commit is contained in:
Vinita S. Maloo 2021-02-01 17:21:02 +05:30 committed by Jouni Malinen
parent c005283c48
commit b4e01ae929
3 changed files with 14 additions and 1 deletions

View file

@ -830,6 +830,8 @@ static int wpa_supplicant_ctrl_iface_set(struct wpa_supplicant *wpa_s,
wpa_s->sae_commit_override = wpabuf_parse_bin(value); wpa_s->sae_commit_override = wpabuf_parse_bin(value);
} else if (os_strcasecmp(cmd, "driver_signal_override") == 0) { } else if (os_strcasecmp(cmd, "driver_signal_override") == 0) {
ret = wpas_ctrl_iface_set_dso(wpa_s, value); ret = wpas_ctrl_iface_set_dso(wpa_s, value);
} else if (os_strcasecmp(cmd, "disable_scs_support") == 0) {
wpa_s->disable_scs_support = !!atoi(value);
#ifdef CONFIG_DPP #ifdef CONFIG_DPP
} else if (os_strcasecmp(cmd, "dpp_config_obj_override") == 0) { } else if (os_strcasecmp(cmd, "dpp_config_obj_override") == 0) {
os_free(wpa_s->dpp_config_obj_override); os_free(wpa_s->dpp_config_obj_override);
@ -8551,6 +8553,7 @@ static void wpa_supplicant_ctrl_iface_flush(struct wpa_supplicant *wpa_s)
wpabuf_free(wpa_s->rsnxe_override_eapol); wpabuf_free(wpa_s->rsnxe_override_eapol);
wpa_s->rsnxe_override_eapol = NULL; wpa_s->rsnxe_override_eapol = NULL;
wpas_clear_driver_signal_override(wpa_s); wpas_clear_driver_signal_override(wpa_s);
wpa_s->disable_scs_support = 0;
wpa_s->oci_freq_override_eapol = 0; wpa_s->oci_freq_override_eapol = 0;
wpa_s->oci_freq_override_saquery_req = 0; wpa_s->oci_freq_override_saquery_req = 0;
wpa_s->oci_freq_override_saquery_resp = 0; wpa_s->oci_freq_override_saquery_resp = 0;

View file

@ -1874,6 +1874,8 @@ int wpa_supplicant_set_suites(struct wpa_supplicant *wpa_s,
static void wpas_ext_capab_byte(struct wpa_supplicant *wpa_s, u8 *pos, int idx) static void wpas_ext_capab_byte(struct wpa_supplicant *wpa_s, u8 *pos, int idx)
{ {
bool scs = true;
*pos = 0x00; *pos = 0x00;
switch (idx) { switch (idx) {
@ -1917,7 +1919,12 @@ static void wpas_ext_capab_byte(struct wpa_supplicant *wpa_s, u8 *pos, int idx)
#endif /* CONFIG_MBO */ #endif /* CONFIG_MBO */
break; break;
case 6: /* Bits 48-55 */ case 6: /* Bits 48-55 */
*pos |= 0x40; /* Bit 54 - SCS */ #ifdef CONFIG_TESTING_OPTIONS
if (wpa_s->disable_scs_support)
scs = false;
#endif /* CONFIG_TESTING_OPTIONS */
if (scs)
*pos |= 0x40; /* Bit 54 - SCS */
break; break;
case 7: /* Bits 56-63 */ case 7: /* Bits 56-63 */
break; break;

View file

@ -1478,6 +1478,9 @@ struct wpa_supplicant {
#endif /* CONFIG_PASN */ #endif /* CONFIG_PASN */
struct scs_robust_av_data scs_robust_av_req; struct scs_robust_av_data scs_robust_av_req;
u8 scs_dialog_token; u8 scs_dialog_token;
#ifdef CONFIG_TESTING_OPTIONS
unsigned int disable_scs_support:1;
#endif /* CONFIG_TESTING_OPTIONS */
}; };