From: Aleti Nageshwar Reddy Date: Mon, 23 Jan 2023 09:53:31 +0000 (+0530) Subject: Set OCV capability based on Association Request frame RSNE X-Git-Tag: hostap_2_11~1334 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dc7e330e0b8997bb3611fa0a668303a3f2aa9959;p=thirdparty%2Fhostap.git Set OCV capability based on Association Request frame RSNE Currently, OCV self-capability is being set into the RSN supplicant state machine only during the initial connection and never getting updated. But for the driver-SME cases the driver may enable/disable OCV in (Re)Association Request frame RSNE based on the AP chosen to roam. This will lead to missing synchronization between wpa_supplicant and the driver. Thus, update OCV self-capability in the wpa_supplicant RSN state machine based on the (Re)Association Request frame RSNE indicated in the connect response. Signed-off-by: Aleti Nageshwar Reddy --- diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c index 6f0ffa5b0..f85da5fa9 100644 --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c @@ -2844,8 +2844,10 @@ static int wpa_supplicant_use_own_rsne_params(struct wpa_supplicant *wpa_s, p += len; } - if (!found || wpa_parse_wpa_ie(p, len, &ie) < 0) + if (!found || wpa_parse_wpa_ie(p, len, &ie) < 0) { + wpa_sm_set_param(wpa_s->wpa, WPA_PARAM_OCV, 0); return 0; + } wpa_hexdump(MSG_DEBUG, "WPA: Update cipher suite selection based on IEs in driver-generated WPA/RSNE in AssocReq", @@ -2872,6 +2874,11 @@ static int wpa_supplicant_use_own_rsne_params(struct wpa_supplicant *wpa_s, return -1; } + if (((wpa_s->drv_flags & WPA_DRIVER_FLAGS_SME) || + (wpa_s->drv_flags2 & WPA_DRIVER_FLAGS2_OCV)) && ssid->ocv) + wpa_sm_set_param(wpa_s->wpa, WPA_PARAM_OCV, + !!(ie.capabilities & WPA_CAPABILITY_OCVC)); + /* * Update PMK in wpa_sm and the driver if roamed to WPA/WPA2 PSK from a * different AKM.